2017-01-24 11 views
0

私はこのクエリを朝のほとんどの時間、Stack Overflowをかなり使い、別のものを試しています。これは多くの反復を経てきました。私は立ち往生しているステップを掲示しており、何が間違っているのか分かっています。それを修正する方法を見つけることができないようです。ここでAmountカラムの総和を求める必要があります

は問題です:

私は与えられた日付範囲の間で寄付し、合計金額を返却する必要があります。私はその選択でSUMを持っていると思っていましたが、条件Amount >= '4000'WHERE句に追加すると、4000以上のすべての寄付の合計を返します。合計が4000を超える寄付の合計を返しません。サブクエリを実行する必要がありますが、どこに配置するかわかりません。私は完全に間違っていて、私が達成しようとしているものに対して誤った構文を使用することもできます。

コードは以下のとおりです。ありがとうございました!

SELECT do.[donorId] as 'ID', 
     d.[fn] as 'First Name', 
     d.[ln] as 'Last Name', 
     SUM(do.[amount]) as Amount 

FROM [OURDB].[dbo].[Donation] AS do 

JOIN [OURDB].[dbo].[Donor] AS d ON do.[donorId] = d.[donorId] 

WHERE do.[donationDate] > '2015-07-01 00:00:00.000' and do.[donationDate] < '2016-07-01 00:00:00.000' 

GROUP BY do.[donorId], d.[fn], d.[ln], do.[amount] 

答えて

3

はこれを行うには、having句を使用します。

SELECT do.[donorId] as 'ID', 
     d.[fn] as 'First Name', 
     d.[ln] as 'Last Name', 
     SUM(do.[amount]) as Amount 

FROM [OURDB].[dbo].[Donation] AS do 

JOIN [OURDB].[dbo].[Donor] AS d ON do.[donorId] = d.[donorId] 

WHERE do.[donationDate] > '2015-07-01 00:00:00.000' and do.[donationDate] < '2016-07-01 00:00:00.000' 

GROUP BY do.[donorId], d.[fn], d.[ln] 
Having SUM(do.amount) > 4000 
+0

はまた、@MikeSが示すように、やる '含めるする必要はありません[量]' 'GROUP BY'句インチ。 – CodeJockey

+0

ありがとう!これは私が探していたものでした。グループから 'do。[amount]'を削除することで、すべての寄付金額を組み合わせることもできます。これは今動作します! – RedDeadVolvo

関連する問題