Access VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


5514 / 9994 ←次へ | 前へ→

【7697】Re:JOIN書き方について
回答  小僧  - 06/4/14(金) 15:47 -

引用なし
パスワード
   ▼タロ さん:
こんにちは。

>予約番号 種別 ホテル名 交通費
>1    2   ホテルA
>1    3        300
>2    2   ホテルB
>3    3        1200
>のようにデータにしたいのです。

クエリとして不可能な訳ではありませんが、
データの持ち方としては余り良くないですよね。

A) ユニオンクエリを使う方法

SELECT P.予約番号, P.種別, P.ホテル名, P.交通費
FROM [
SELECT 種類_T.予約番号,種類_T.種別, ホテルT.ホテル名, '' AS 交通費
FROM 種類_T LEFT JOIN ホテルT ON 種類_T.予約番号 = ホテルT.予約番号
WHERE 種類_T.種別=2
UNION ALL
SELECT 種類_T.予約番号, 種類_T.種別, '' AS ホテル名, 電車T.交通費
FROM 種類_T INNER JOIN 電車T ON 種類_T.予約番号 = 電車T.予約番号
WHERE 種類_T.種別=3
]. AS P
ORDER BY P.予約番号, P.種別;


B) IIF関数を使う方法

SELECT 種類_T.予約番号,
    種類_T.種別,
    IIf([種別]=2,[ホテルT].[ホテル名],Null) AS ホテル名,
    IIf([種別]=3,[電車T].[交通費],Null) AS 交通費
FROM (種類_T
   LEFT JOIN 電車T ON 種類_T.予約番号 = 電車T.予約番号)
   LEFT JOIN ホテルT ON 種類_T.予約番号 = ホテルT.予約番号
ORDER BY 種類_T.予約番号, 種類_T.種別;

357 hits

【7692】JOIN書き方について タロ 06/4/14(金) 11:25 質問
【7694】Re:JOIN書き方について 小僧 06/4/14(金) 14:21 発言
【7696】Re:JOIN書き方について タロ 06/4/14(金) 15:00 発言
【7697】Re:JOIN書き方について 小僧 06/4/14(金) 15:47 回答
【7699】Re:JOIN書き方について タロ 06/4/17(月) 9:19 お礼

5514 / 9994 ←次へ | 前へ→
ページ:  ┃  記事番号:
1078229
(SS)C-BOARD v3.8 is Free