我想在sql 2008中添加一个代码,它将添加下表中的上一个余额。喜欢
Balance= + Debit
Balance= -Credit
AccountReceivable
+----+------------+----------+----------+----------+---------+-------+--------+---------+-----+
| ID | AR_Date | Ref_No | Acc_Code | Acc_Name | Details | Debit | Credit |Balance | |
+----+------------+----------+----------+----------+---------+-------+--------+---------+-----+
| 1 | 2013-04-10 | | 101 | A/R | Kofi | 500 | | 0 | |
| 2 | 2013-04-10 | | 101 | A/R | AMA |0 | | 250 | |
| 3 | 2013-04-11 | CH552778 | 101 | A/R | Boss | 0 | | 50 | |
+----+------------+----------+----------+----------+---------+-------+--------+---------+-----+
答案 0 :(得分:0)
将CTE与ROW_NUMBER()结合使用。然后,您可以查询CTE并使用前一个连接当前行号。
e.g。
;
WITH CTE as (
SELECT
ac.*,
RN = ROW_NUMBER() OVER (ORDER BY ID)
FROM
AccountsReceivable ac
)
SELECT
cur.Balance + prev.Balance AS NewBalance
FROM
CTE cur
LEFT OUTER JOIN CTE prev ON cur.RN = prev.RN + 1