繁体   English   中英

添加一个列,该列是多个其他列的总和

[英]Add a column that is the sum of multiple other columns

我在下面有一个查询,其中包含几个 SUM(CASE WHEN 语句,它为我提供了我需要的数据,但是现在我被卡住了,因为我需要一个最后一列,该列汇总了每列中的所有值,而到目前为止我尝试的还没有产生了任何结果。

注意:日期来自我正在使用的数据库作为 INT 数据类型,因此它们已被转换为如图所示。 无法更新数据类型。

预期结果:填充 X 列中所有值的总和

顾客 顾客姓名 货币 当前的 1-30 天 31-60 天 61-90 天 91-120 天 +120 天 X
1000184 萨尔数码 欧元 0.00 12894.00 356.00 4042.00 0.00 0.00

以下是我到目前为止的代码。

SELECT
FS.CUNO CUSTOMER,
OC.CUNM CUSTOMER_NAME,
FS.CUCD CURRENCY,
SUM(
CASE 
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112) BETWEEN DATEADD(DAY,-1, GETDATE()) AND DATEADD(DAY, -0 , GETDATE()) THEN FS.CUAM ELSE 0 END) 
    AS [CURRENT],

SUM(
CASE 
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112)BETWEEN DATEADD(DAY,-30, GETDATE()) AND DATEADD(DAY, -1, GETDATE()) THEN FS.CUAM ELSE 0 END) 
    AS [1-30 DAYS],

SUM(
CASE 
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112)BETWEEN DATEADD(DAY,-60, GETDATE()) AND DATEADD(DAY, -31, GETDATE()) THEN FS.CUAM ELSE 0 END) 
    AS [31-60 DAYS],

SUM(
CASE
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112)BETWEEN DATEADD(DAY,-90, GETDATE()) AND DATEADD(DAY, -61, GETDATE()) THEN FS.CUAM ELSE 0 END) 
    AS [61-90 DAYS],

SUM(
CASE 
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112)BETWEEN DATEADD(DAY,-120, GETDATE()) AND DATEADD(DAY, -91, GETDATE()) THEN FS.CUAM ELSE 0 END)
    AS [91-120 DAYS],

SUM(
CASE 
    WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112)BETWEEN DATEADD(DAY,-999, GETDATE()) AND DATEADD(DAY, - 121, GETDATE()) THEN FS.CUAM ELSE 0 END) 
    AS [+120 DAYS]

FROM FSLEDG FS
LEFT JOIN OCUSMA OC ON OC.CUNO = FS.CUNO
WHERE FS.YEA4 = '2021'
GROUP BY FS.CUNO, OC.CUNM, FS.CUCD
HAVING MIN(FS.TRCD) = 10 AND MAX(FS.TRCD) = 10
ORDER BY FS.CUNO

谢谢你的帮助。

您可以将以下条件总和添加到您的选择中:

SUM(CASE WHEN CONVERT(DATE, CONVERT(VARCHAR(8), FS.DUDT), 112) BETWEEN
              DATEADD(DAY, -999, GETDATE()) AND GETDATE()
         THEN FS.CUAM ELSE 0 END) AS [TOTAL]

这只是使用涵盖查询中所有先前条件总和的日期范围。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM