我有一個像下面這樣的查詢。表格之間的關係是:如何編寫此SQL Server查詢:在唯一行中添加值?
每輛卡車可能有多個司機。表列表將表卡車中的每一行與表格驅動程序中的行連接起來。現在我想在特定條件下獲得唯一卡車的數量,以及在這種情況下唯一卡車的總大小。
以下是我有:
SELECT t.Year AS [Year]
, t.Month AS [Month]
, t.Day AS [Day]
-- Count will not count NULL
, COUNT(DISTINCT (CASE WHEN (t.Sent = 1 AND r.Internal=1) THEN L.TruckId
ELSE NULL
END)) AS [Count]
, SUM(CASE WHEN (t.Sent = 1 AND r.Internal = 1) THEN t.Size
END) AS [Size]
FROM Truck t
INNER JOIN List L ON t.Id = L.TruckId
INNER JOIN Driver r ON L.DriverId = r.Id
GROUP BY t.Year, t.Month, t.Day
- 計數是正確的,但和不爲。
我的問題是如何得到這個SUM? 我不想寫2個查詢並加入。
感謝
請提供樣本數據和預期的結果。 –
你是什麼意思,當你說「總和不是」?,你期望什麼值?,首先我建議你使用像這樣的「else」子句:SUM(CASE WHEN(t.Sent = 1 AND r.Internal = 1)THEN t.Size ELSE 0 END)AS [Size] –