开发者社区> 问答> 正文

使用SQL Server从贷方和借方导出期末余额

我们可以在sql server中使用lag函数实现以上功能吗?

我有cust,date,credit amount,debit amount在表中,我需要的cust,date,credit amount,debit amount,closing balance(逻辑是以前的期末余额-当前行借记+目前的信用额度)

我正在尝试

select 
   *, 
   LAG (closing balance,1) OVER (Partition by cust ORDER BY cust,date)  - Debit + Credit 
from table_name
order by cust

展开
收起
祖安文状元 2020-01-03 15:31:29 836 0
1 条回答
写回答
取消 提交回答
  • 我认为您不需要LAG(),只需打开窗口即可SUM():

    CREATE TABLE Data (
        cust int, 
        [date] date, 
        [credit amount] numeric(10, 2), 
        [debit amount] numeric(10, 2)  
    )
    INSERT INTO Data 
        (cust, [date], [credit amount], [debit amount])
    VALUES
        (1, '20200101',   5000.00,      0.00),  
        (2, '20200101',      0.00,      2000.00),   
        (2, '20200107',   4000.00,      0.00),
        (1, '20200107',      0.00,      2000),   
        (1, '20200109',   5000.00,      0.00)
    

    声明:

    SELECT 
        cust, [date], [credit amount], [debit amount], 
        SUM(-[debit amount] + [credit amount]) OVER (PARTITION BY cust ORDER BY [date]) AS [closing balance]
    FROM Data
    
    2020-01-03 15:33:31
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载