如何在sql 2008中计算以前的余额

时间:2013-04-10 12:09:11

标签: sql-server-2008

我想在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  |      |
+----+------------+----------+----------+----------+---------+-------+--------+---------+-----+

1 个答案:

答案 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