2011-07-28 12 views
0

私は2つのテーブルを持っています.1つは私の顧客アドレスを示し、もう1つのテーブルはすべての注文データを示しています。私は2つのテーブルを照会して、JOINを使用して、去年に注文していない顧客のためにすべての電子メールアドレスを表示する結果セットを得ることができるようにしたいと思います。SQL INNER JOINステートメントのヘルプ

は、これまでのところ、私はこれを持っていますが、私の内部は、あなたが役立つかもしれない場合、機能していない参加:あなたはスタイルに参加する混合された

SELECT SHH.CUST_NO,ADR.EMAIL 

FROM SALES_HISTORY_HEADER SHH,ADDRESS ADR 

INNER JOIN ADR ON 
SHH.CUST_NO = ADR.CUST_NO 


GROUP BY SHH.CUST_NO 
HAVING Max(SHH.INVOICE_DATE) < '20100728' 
+1

「私の内部結合は機能していません」完全な説明でもなく、dbmsは何ですか? –

答えて

3

。明示的な結合を使用する場合は、FROM句のすべての表をリストするのではなく、JOINに2番目の表を指定します。

SELECT SHH.CUST_NO,ADR.EMAIL 
    FROM SALES_HISTORY_HEADER SHH 
     INNER JOIN ADDRESS ADR 
      ON SHH.CUST_NO = ADR.CUST_NO 
    GROUP BY SHH.CUST_NO, ADR.EMAIL 
    HAVING Max(SHH.INVOICE_DATE) < '20100728' 
+0

こんにちはジョー、助けてくれてありがとうございましたが、 "COLUMN INVALID:列単位のグループ:EMSIL in SELECT LIST" – seb

+0

@sebを入力してGROUP Byステートメント – Taryn

+0

@sebにADR.EMAILを追加する必要があります: 'GROUP BY'節に' ADR.EMAIL'を追加しました。 –