table1 からすべての行を取得したいのですが、table1 の各人に対して table3 の列の合計を取得したいと考えています。クエリのどこにも where 句を使用しない場合 (サブセレクト、内部結合、または通常の where 句)、これを行うことができます。以下のように where 句を使用すると、指定された日付の間に table2 にレコードがあり、検証された table1 の人のみが検証されます。
私が欲しいのは table1 のすべての行ですが、提供された日付の間にあり、検証された table2 のレコードのみを合計します。
単一のクエリでこれを行う方法はありますか?
SELECT table1.ID
, table1.LName
, table1.FName
, (Select SUM(table3.DollarValue) Where table2.Verified = 1) AS total
FROM table3
INNER JOIN table2 ON table3.IncentiveID = table2.IncentiveID
RIGHT OUTER JOIN table1 ON table2.ID = table1.ID
Where table2.date >= '1/1/2012'
AND table2.date <= '12/31/2012'
AND table2.Verified = 1
Group By table1.ID, table1.LName, table1.FName, table2.Verified
Order By table1.LName, table1.FName
助けてくれてありがとう!