我想從table1獲取所有行,並且我想要爲table1中的每個人獲取table3中的一列總數。我能夠做到這一點,如果我不在我的查詢中的任何地方使用where子句(在子選擇,內部聯接或常規的where子句中)。如果我使用下面的where子句,那麼只有table1中的人員在提供的日期和已驗證的table2之間有記錄。從一個表中獲取所有行,使用where子句從第二個表中求和列
我想要的是來自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
非常感謝您的幫助!
如此,'date'列所屬至極的表?什麼是'table3'?另外,你說你想總結'table2'中的記錄,但是你使用'table3'中的一列,你能澄清你的文章嗎? – Lamak
@Lamak我更新了我的帖子,以更好地闡明。 Table3與table2具有一對多的關係,其中table3具有我想要總結的值,但table2包含table1中的人員的作業實例(日期和已驗證)。 – Addicted2HD