簡體   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