
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ランキング
-
別formの多重起動防止
-
構造体のリスト削除
-
Aの値からBの値を除するとは??
-
複数桁10進数の*桁目だけを抽出...
-
main.c:7:43: warning: implici...
-
「Aに対するBの割合」と「Aに対...
-
#define _CRT_SECURE_NO_WARNIN...
-
C言語での引数の省略方法
-
エクセルで可視セルにのみ値貼...
-
C言語の型による処理速度の違い
-
Enterキーを押されたら次の処理...
-
構文エラー";"が型の前にあり...
-
プログラミング初心者です。 Py...
-
数値を指数部と仮数部に分離したい
-
複数ファイルの同時読み込みの...
-
エラー 添字が付けられた値が、...
-
「指定されたキャストは有効で...
-
戻り値を返す関数の前に(void)...
-
2÷3などの余りについて
-
有効数字について 以前質問をし...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
おすすめ情報