我想从 table1 中获取所有行,并且我想为 table1 中的每个人获取 table3 中的总共一列。如果我不在查询中的任何地方使用 where 子句(在子选择、内部连接或常规 where 子句中),我就可以做到这一点。如果我使用如下所示的 where 子句,则只有 table1 中的人在提供的日期之间在 table2 中有记录并且已经过验证。
我想要的是 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
预先感谢您的任何帮助!