[英]How to calculate balance in sql?
我有下表,但我不知道如何根據借方和貸方列計算如下的余額和狀態列?
| ID | AR_DATE |ACC_CODE | ACC_NAME | DETAILS | DEBIT | CREDIT | BALANCE ?| STATUS?|
----------------------------------------------------------------------------------------
| 1 | 2013-04-10 | 101 | A/R | Kofi | 500 | 0 | 500 | Debit |
| 2 | 2013-04-10 | 101 | A/R | AMA | 0 | 250 | 250 | Debit |
| 3 | 2013-04-11 | 101 | A/R | Boss | 0 | 50 | 200 | Debit |
| 4 | 2013-04-12 | 101 | A/R | Jhon | 0 | 300 | 100 | Credit |
假設SQL Server 2012:
SELECT ID,
AR_DATE,
ACC_CODE,
ACC_NAME,
DETAILS,
DEBIT,
CREDIT,
SUM(DEBIT - CREDIT) OVER(ORDER BY AR_DATE ASC) AS BALANCE,
CASE WHEN CREDIT > 0 THEN 'Credit' ELSE 'Debit' END AS STATUS,
FROM [WhateverTable]
當您沒有2012時,您需要將其構建起來稍微復雜一些:( source )
SELECT ID,
AR_DATE,
ACC_CODE,
ACC_NAME,
DETAILS,
DEBIT,
CREDIT,
(SELECT SUM(b.DEBIT - b.CREDIT)
FROM [WhateverTable] b
WHERE b.AR_DATE <= a.AR_DATE) AS BALANCE,
CASE WHEN CREDIT > 0 THEN 'Credit' ELSE 'Debit' END AS STATUS,
FROM [WhateverTable] a
select case when Debit>0 then balance=balance+debit else
balance=balance-credit end as balance,case when Balance > Credit then
'Debit' else 'Credit' end as Status from tableName
請嘗試上述查詢。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.