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