SELECT 文の書き方
SQLServer 2005 使用中です。
以下のような2つのテーブルがあります。
・売上テーブル(T_URI)
商品コード,商品名,売上日
0001,りんご,2009/08/01
0002,ごりら,2009/08/01
0003,ラーメン,2009/08/01
・企画テーブル(T_KIKAKU)
企画コード,企画名,商品コード,期間開始日,期間終了日,更新日
01,大売出し,0001,2009/08/01,2009/08/04,2009/08/04 12:34:56
02,サマーセール,0003,2009/08/03,2009/08/10,2009/08/06 13:55:12
03,売り尽くし,0001,2009/08/01,2009/08/02,2009/08/01 12:34:10
【やりたいこと】
以下のように商品ごとに、最新の企画名を表示させたく思っています。
商品コード,商品名,売上日,企画コード,企画名
0001,りんご,2009/08/01,01,大売出し ※1
0002,ごりら,2009/08/01,NULL,NULL ※2
0003,ラーメン,2009/08/01,NULL,NULL ※3
※1「りんご」は2つのテーブルに跨っているが、更新日が新しいものを表示
※2「ごりら」は企画テーブルに無いのでNULL
※3「ラーメン」は企画テーブルにあるが、期間外なのでNULL
【やってみたこと】
以下のような SQL 文を流すと、
SELECT T_URI.商品コード, T_URI.商品名, T_URI.売上日,
T_KIKAKU.企画コード, T_KIKAKU.企画名
FROM T_URI LEFT JOIN T_KIKAKU
ON (T_URI.商品コード = T_KIKAKU.商品コード)
AND (T_URI.売上日 Between T_KIKAKU.期間開始日 And T_KIKAKU.期間終了日)
ORDER BY T_URI.商品コード
このように余計な行まで出てしまいます。
商品コード,商品名,売上日,企画コード,企画名
0001,りんご,2009/08/01,03,売り尽くし ←これがいらない。
0001,りんご,2009/08/01,01,大売出し
0002,ごりら,2009/08/01,NULL,NULL
0003,ラーメン,2009/08/01,NULL,NULL
ここからどのように SQL 文を記述すれば良いでしょうか。
お礼
教えてくださってありがとうございます。 おかげで理解することができました。 本当に感謝です。