
AcessMDBで困ってます。
例えば、以下のようなデータで(カンマCSVで記述します)
データベース1
ID,NAME
1,おなまえ
2,名前
3,なまえ
データベース2
ID,DB1_ID,NAME,開始日,終了日
1,1,4月,2006/4/1,2006/4/30
2,1,6月,2006/6/1,2006/6/30
3,2,2006年度,2006/4/1,2007/3/31
(データベース1のIDとデータベース2のDB1_IDが関連付けされている)
とあるとき、以下のようにデータを出力したいのですが・・
ID(オートナンバー),NAME,月,開始日,終了日
1,おなまえ,4月,2006/4/1,2006/4/30
2,おなまえ,6月,2006/6/1,2006/6/30
3,おなまえ,(null),(null),(null)
4,名前,2006年度,2006/4/1,2007/3/31
5,名前,(null),(null),(null)
6,なまえ,(null),(null),(null)
そして、where条件として、
2006/4/1が選択された場合
1,おなまえ,4月,2006/4/1,2006/4/30
2,名前,2006年度,2006/4/1,2007/3/31
3,なまえ,(null),(null),(null)
2006/7/1が選択された場合
3,おなまえ,(null),(null),(null)
2,名前,2006年度,2006/4/1,2007/3/31
3,なまえ,(null),(null),(null)
2007/4/1が選択された場合
3,おなまえ,(null),(null),(null)
2,名前,(null),(null),(null)
3,なまえ,(null),(null),(null)
このような場合、どのようなSQLをかけばよろしいでしょうか?
言語はVS2003 VB.NET + AccessMDBです。
よろしくお願いします。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
こんな感じでしょうか???
SELECT
テーブル1.ID,
テーブル1.NAME,
テーブル2.NAME,
テーブル2.月,
テーブル2.開始日,
テーブル2.終了日
FROM
テーブル1 LEFT OUTER JOIN テーブル2
ON テーブル1.ID = テーブル2.DB1_ID
この回答への補足
この場合ですと
1,おなまえ,4月,2006/4/1,2006/4/30
2,おなまえ,6月,2006/6/1,2006/6/30
3,名前,2006年度,2006/4/1,2007/3/31
4,なまえ,(null),(null),(null)
になってしまいます><
イメージ的には、以下の様なSQLですが、Accessだとダイヤログで空値を入力する必要があり、VB上だとエラーになってしまいます。
NULL値をDBをいじらずSQLだけで挿入する方法が必要なようです。
SELECT テーブル1.NAME, テーブル2.NAME, テーブル2.START, テーブル2.END
FROM テーブル1 LEFT JOIN テーブル2 ON テーブル1.ID=テーブル2.DB1_ID
UNION SELECT テーブル1.NAME, テーブル2.NAME,テーブル2.START,テーブル2.END
FROM テーブル1;
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
構造体のリスト削除
-
空のカラムを挿入
-
Aの値からBの値を除するとは??
-
複数桁10進数の*桁目だけを抽出...
-
「Aに対するBの割合」と「Aに対...
-
Enterキーを押されたら次の処理...
-
エクセルで可視セルにのみ値貼...
-
10個出力で改行したいのですが...
-
main.c:7:43: warning: implici...
-
信頼区間の1.96や1.65ってどこ...
-
DWORDの実際の型は何でしょうか
-
2÷3などの余りについて
-
プログラムでの数字につく”f”の...
-
【gcc・cygwin】multiple defin...
-
エクセルのオートフィル?ドラ...
-
#define _CRT_SECURE_NO_WARNIN...
-
acceptをalarmでタイムアウトさ...
-
c言語でのfscanfについて
-
C言語での引数の省略方法
-
構文エラー";"が型の前にあり...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報