正在计算期初和期末余额 SQL 服务器
Calculating Beginning and Ending Balance SQL Server
我在使用 SQL 服务器处理 ETL 过程时遇到困难。我必须计算期初和期末余额,客户只提供Debit(将减去余额)和Credit(将添加余额)交易。
我有table来说明
如有任何帮助,我们将不胜感激。 :)
你试过这个吗?
SELECT
B.Date,
SUM(CR-DR) OVER(ORDER BY Date) - CR + DR AS Beginning,
B.DR, B.CR,
SUM(CR-DR) OVER(ORDER BY Date) AS Ending
FROM #bb AS B
示例数据如下:
IF OBJECT_ID('tempdb..#bb') IS NOT NULL DROP TABLE #bb
CREATE TABLE #bb(
Datum DATE,
DR INT,
CR INT
);
INSERT INTO #bb
(
Datum,
DR,
CR
)
VALUES
( '20180101', -- Datum - date
100, -- DR - int
0 -- CR - int
),
( '20180102', -- Datum - date
0, -- DR - int
300 -- CR - int
),
( '20180103', -- Datum - date
150, -- DR - int
0 -- CR - int
);
这是查询的结果:
Datum Begining DR CR Ending
---------- ----------- ----------- ----------- -----------
2018-01-01 0 100 0 -100
2018-01-02 -100 0 300 200
2018-01-03 200 150 0 50
我在使用 SQL 服务器处理 ETL 过程时遇到困难。我必须计算期初和期末余额,客户只提供Debit(将减去余额)和Credit(将添加余额)交易。
我有table来说明
如有任何帮助,我们将不胜感激。 :)
你试过这个吗?
SELECT
B.Date,
SUM(CR-DR) OVER(ORDER BY Date) - CR + DR AS Beginning,
B.DR, B.CR,
SUM(CR-DR) OVER(ORDER BY Date) AS Ending
FROM #bb AS B
示例数据如下:
IF OBJECT_ID('tempdb..#bb') IS NOT NULL DROP TABLE #bb
CREATE TABLE #bb(
Datum DATE,
DR INT,
CR INT
);
INSERT INTO #bb
(
Datum,
DR,
CR
)
VALUES
( '20180101', -- Datum - date
100, -- DR - int
0 -- CR - int
),
( '20180102', -- Datum - date
0, -- DR - int
300 -- CR - int
),
( '20180103', -- Datum - date
150, -- DR - int
0 -- CR - int
);
这是查询的结果:
Datum Begining DR CR Ending
---------- ----------- ----------- ----------- -----------
2018-01-01 0 100 0 -100
2018-01-02 -100 0 300 200
2018-01-03 200 150 0 50