34,836
社区成员




select t.日期,t.收入,t.付出,(select sum(收入)-sum(付出) from 会计表 where 日期 <= t.日期) as 余额 from 会计表 t
WITH a AS (
SELECT ROW_NUMBER() OVER (ORDER BY a.日期 ASC) 序号,
日期, 收入, 支出
FROM MX
WHERE 物料编号=001
)
,r AS (
SELECT *,
收入-支出 余额
FROM a
WHERE 序号 = 1
UNION ALL
SELECT a.*,
r.余额+a.收入-a.支出 余额
FROM r
JOIN a
ON r.序号+1 = a.序号
)
SELECT *
FROM r
SELECT ROW_NUMBER() OVER (ORDER BY a.日期 ASC) 序号,a.日期, a.收入, a.支出,(select sum(收入)-sum(支出) from MX where --序号无法使用--) 余额
FROM MX a
where 物料编号=001
后面不知道怎么写,求指点!
SELECT t.id, t.dt, t.fin, t.fout, (SELECT SUM(fin)-SUM(fout)
FROM tbl04 WHERE dt <= t.dt) AS 余额 FROM tbl04 AS t
/**********************************************************************************************/
id dt fin fout 余额
1 2015-01-01 00:00:00 50.00000000 20.00000000 30.00000000
2 2015-01-02 00:00:00 60.00000000 50.00000000 40.00000000
3 2015-01-02 01:00:00 100.00000000 30.00000000 110.00000000
4 2015-01-02 03:00:00 10.00000000 20.00000000 100.00000000
5 2015-01-03 00:00:00 50.00000000 60.00000000 90.00000000
日期不唯一, 用自增字段来区分:
SELECT t.id, t.dt, t.fin, t.fout, (SELECT SUM(fin)-SUM(fout)
FROM tbl04 WHERE id <= t.id) AS 余额 FROM tbl04 AS t
/**********************************************************************************************/
id dt fin fout 余额
1 2015-01-01 00:00:00 50.00000000 20.00000000 30.00000000
2 2015-01-02 00:00:00 60.00000000 50.00000000 40.00000000
3 2015-01-02 00:00:00 100.00000000 30.00000000 110.00000000
4 2015-01-02 03:00:00 10.00000000 20.00000000 100.00000000
5 2015-01-03 00:00:00 50.00000000 60.00000000 90.00000000