2016-04-20 6 views
0

をそれらを追加すべきだと思うが、私のコード私は、このSQLクエリから重複を取得し、私はそれだけでここ

select 
    name, sum(Value) as [Total Donated] 
from 
    CHARITY c 
join 
    DONATION d on c.CharityID = d.CharityID 
join 
    ITEM_DONATION id on d.DonationID = id.DonationID 
group by 
    name, DonationDate 
having 
    DonationDate like '%13%' 
order by 
    name; 

と私はそれがどこボーイスカウトを設定していたと思っ出力

name     Total Donated 
-------------------- ------------- 
Boy Scouts   250.00 
Boy Scouts    5.00 
Focus Hope    5.00 
Focus Hope   10.00 
Fresh Start Charity 12.00 
Helping Hands   2.99 
Helping Hands   12.50 
Helping Hands  110.50 
St. John Hospital 112.00 

です一緒に追加された1つのアイテムであり、フォーカスの希望などと同じでなければなりません...しかし、どこかでちょっと離れていて、誰かが助けてくれて、私がここで間違っていることを知らせることができますか?

+2

'GROUP BY'句から' DonationDate'を削除します。 –

+0

メッセージ8121、レベル16、状態1、行8の8121 列 'DONATION.DonationDate'は集計関数またはGROUP BY句に含まれていないため、HAVING句では無効です。 – Chris

答えて

3

あなたはGROUP BY句からDonationDateを削除し、WHERE句にHAVINGから条件を移動する必要があります。

select 
    name 
    , sum(Value) as [Total Donated] 
from CHARITY c 
join DONATION d 
    on c.CharityID = d.CharityID 
join ITEM_DONATION id 
    on d.DonationID = id.DonationID 
where 
    DonationDate like '%13%' 
group by name 
order by name; 
+1

これは正しいです、私はそれをすぐにマークします、私はそれを見た前にそれを得ました。 – Chris

関連する問題