[英]Sum by Distinct Values
我有以下代碼,其中匯總了一天“ GRLastDt”已完成或未完成的時間,但是我沒有考慮重復的返回ID。 有沒有一種方法可以按天返回每個返回ID的總和?
例如,一天24/5/15可能有5行到當天的“ X”已完成,但是2行有重復的返回ID“ RtnId”,因此24/5/15的總和為4,而不是5。
SELECT
CONVERT(varchar(15), GRLastDt, 111) AS Date_,
SUM(CASE WHEN Complete = 'X' THEN 1 ELSE 0 END) AS Complete,
SUM(CASE WHEN Complete <> 'X' /*and RtnDt <>GRLastDt*/THEN 1 ELSE 0 END) AS Due
FROM [dbo].[vw_AN_Admin_VendorReturns]
WHERE (GRLastDt >= GETDATE() - 30)
GROUP BY CONVERT(varchar(15), GRLastDt, 111),GRLastDt
如果我正確理解您的問題,我認為您可以更改此行:
SUM(CASE WHEN Complete = 'X' THEN 1 ELSE 0 END) AS Complete,
對此:
COUNT(DISTINCT CASE WHEN Complete = 'X' THEN RtnId END) AS Complete,
您可能需要對Due計算進行相同的更改。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.