SQL - 返回累积每月列值

Kin*_*mau 5 sql-server-2012

我有这个SQL查询,我用它来查找每个帐户每月的试算平衡移动.

/* Fixed Assets 1 */
SELECT * FROM
(
    SELECT T0.AcctCode AS 'SAP Code', T0.AcctName AS 'Description', 
    MONTH(T1.RefDate) AS Month, SUM(T1.Debit - T1.Credit) AS 'Amount'
    FROM OACT T0
    LEFT JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] 
    WHERE T0.AcctCode LIKE '111%' AND T0.Levels = 5
    AND (T1.RefDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,{?AsAtDate}), 0) AND {?AsAtDate}) 
    GROUP BY T0.AcctCode, T0.AcctName, T0.FatherNum, T1.RefDate) AS q
    PIVOT
(
SUM(Amount) 
FOR [Month] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
) AS query
Run Code Online (Sandbox Code Playgroud)

这将从6月返回以下结果:

在此输入图像描述

我想包括所有行的累计月度结果,以便第1行结果应为:

1, 111110, Building Gross Value, 633604.23, 637764.23, 645313.03, 649061.78, 651097.78, 651097.78, 651397.78
Run Code Online (Sandbox Code Playgroud)

我没有成功实现这一目标.如何修改查询以实现此目的?

其他数据:

查询:

SELECT CAST(T0.TaxDate AS Date), T0.Account, T1.AcctName, T0.Debit, T0.Credit
FROM JDT1 T0 INNER JOIN OACT T1
ON T0.Account = T1.AcctCode
WHERE T0.[Account] = '111110'
Run Code Online (Sandbox Code Playgroud)

返回:

在此输入图像描述

dey*_*dey 3

您需要外部选择,在其中将列添加到另一个列:

SELECT AcctCode AS 'SAP Code', AcctName AS 'Description', 
col1 AS '1', 
col1 + col2 AS '2', 
col1 + col2 + col3 AS '3',
... FROM (
    SELECT AcctCode, AcctName, 
    [1] AS col1, 
    [2] AS col2, 
    [3] AS col3,
    ... FROM
    (
        SELECT T0.AcctCode, T0.AcctName, 
        MONTH(T1.RefDate) AS Month, SUM(T1.Debit - T1.Credit) AS 'Amount'
        FROM OACT T0
        LEFT JOIN JDT1 T1 ON T0.[AcctCode] = T1.[Account] 
        WHERE T0.AcctCode LIKE '111%' AND T0.Levels = 5
        AND (T1.RefDate BETWEEN DATEADD(yy, DATEDIFF(yy,0,{?AsAtDate}), 0) AND {?AsAtDate}) 
        GROUP BY T0.AcctCode, T0.AcctName, T0.FatherNum, T1.RefDate) AS q
        PIVOT
    (
    SUM(Amount) 
   FOR [Month] IN ([1],[2],[3],[4],[5],[6],[7],[8],[9],[10],[11],[12])
    ) AS query
)
Run Code Online (Sandbox Code Playgroud)