sql - 添加一列,该列是多个其他列的总和
问题描述
我在下面有一个查询,其中包含几个 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]
这只是使用涵盖查询中所有先前条件总和的日期范围。
推荐阅读
- reactjs - 一个错误导致函数被渲染为无穷大
- node.js - 我想增加购物车中的产品数量
- docker - 如何在 Cypress Docker 容器中配置多个报告器?
- flutter - 固定密码正确时颤振显示小部件
- timer - 操作系统以纳秒为单位配置 HPET 计时器
- javascript - 纯JS对用作div背景的imgs实现视差滚动效果,在多个div上
- python - Python中的空数组而不是抓取的数据
- php - 将保存在一个表中的所有 Cookie 数据传输到实际的购物车表中
- javascript - 有没有办法在 Javascript 中动态添加 JSON 字段?
- php - Laravel 限制分页