2017-10-31 95 views
0

寄付していない慈善団体を示すクエリを書いています。ここに私のスクリプトは、これまでのところです:SQL EXCEPTを使用してクエリを書くときに助けが必要

SELECT c.Name 
FROM CHARITY c INNER JOIN 
    DONATION d 
    ON c.CharityID = d.DonationID 
EXCEPT 
select C.CharityID, donationID 
from charity c join 
    DONATION d 
    on c.CharityID = d.DonationID 
ORDER BY d.DonationID asc 

私の出力は必ず明記してください:

name      DonationID 
------      ------ 
St. Francis Home    NULL 
Salvation Army    Null 
..... 
..... 

をしかし、私は取得しています:

「メッセージ205、レベル16、状態1、行1 UNION、INTERSECTまたはEXCEPT演算子を使用して結合されたすべての照会は、ターゲットリストに同じ数の式を持つ必要があります。どのようにleft joinwhereについて

+0

あなたはメッセージのどの部分を理解していませんか?エラーはかなり明確です。 –

答えて

1

:私は "DonationID" に "CharityID" を接続するジョインことなども指摘する

SELECT c.Name 
FROM CHARITY c LEFT JOIN 
    DONATION d 
    ON c.CharityID = d.DonationID 
WHERE d.DonationID IS NULL; 

は本当に疑わしいです。

+0

私は自分の質問でそれを述べることを意図したIDを持つチャリティーがいくつかあります。 IE: "Helping Hands 1000" – jh86

関連する問題