簡體   English   中英

如何在SQL中計算余額?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM