アプリ版:「スタンプのみでお礼する」機能のリリースについて

以下のテーブル1、テーブル2で、
テーブル2のDATE2が、テーブル1のDATE以前になっている
VOL2を集計したいと考えています。

テーブル1
CODE   DATE     VOL
---------------------------
a     20080601  100
a     20080602  100
a     20080603  100

テーブル2
CODE   DATE2    VOL2
------------------------
a     20080602   50
a     20080603   50

希望する結果のイメージ
CODE   DATE     VOL    VOL2
---------------------------------------
a    20080601   100     0
a    20080602   100     50
a    20080603   100    100

以下のSQLを考えましたが、DATE以前のDATE2を持たない場合、
テーブル1の行が表示されませんでした。
SQL文
SELECT t1.CODE, t1.DATE, t1.VOL
, Sum(t2.VOL2) AS VOL2の合計
FROM テーブル1 as t LEFT JOIN テーブル2 as t2
ON t1.CODE = t2.CODE
WHERE t1.DATE >= t2.DATE2
GROUP BY t1.CODE, t1.DATE, t1.VOL

結果
CODE   CDATE   VOL   VOL2の合計
--------------------------------------
a    20080602  100    50
a    20080603  100   100

SQL文中にある
WHERE t1.DATE >= t2.DATE2
が原因しているのではと考えています。
しかし、どのようにしたらよいのかがわかりません。
どなたか、ご教授をお願いします。

A 回答 (2件)

SELECT テーブル1.CODE, テーブル1.DATE, テーブル1.VOL,


Sum(IIf([DATE]>=[DATE2],[VOL2],0)) AS VOL2の合計
FROM テーブル1 LEFT JOIN テーブル2
ON テーブル1.CODE = テーブル2.CODE
GROUP BY テーブル1.CODE, テーブル1.DATE, テーブル1.VOL;
    • good
    • 0
この回答へのお礼

実行したところ、希望通りの結果になりました。
大変助かりました。
ありがとうございました。

お礼日時:2008/06/17 18:56

SELECT t1.CODE, t1.DATE, t1.VOL


, Sum(t2.VOL2) AS VOL2の合計
FROM テーブル1 as t1 LEFT JOIN テーブル2 as t2
ON t1.CODE = t2.CODE AND t1.DATE = t2.DATE2
GROUP BY t1.CODE, t1.DATE, t1.VOL

でどうでしょうか
    • good
    • 0
この回答へのお礼

実行したところ結果が以下のようになり
上手くいきませんでした。

CODE   DATE   VOL   VOL2の合計
-----------------------------------------
a    20080601  100
a    20080602  100  50
a    20080603  100  50


No.2の方の回答にて解決いたしました。
回答ありがとうございました。

お礼日時:2008/06/17 18:55

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

関連するカテゴリからQ&Aを探す


このQ&Aを見た人がよく見るQ&A