簡體   English   中英

按不同值求和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM