sql逻辑,只给一个年末的期末余额,用sql计算之后的期初和期末余额

财务报表想要自动计算每天的期末期初余额

期末=期初+收入1+收入2-支出1-支出2

前一天的期末数据=第二天期初数据

现在只给一个2021年12月31日的期末余额(也是2022年1月1日的期初余额),收入和支出每天填报,如何自动计算出2022年每日的期末和期初并保存在一个表里便于查询(节假日不填,每天取数都取的是有数据的工作日)

image.png

有大神知道怎么做吗,求助

  

  

  

  

  

感谢1楼大哥提供的思路,最后我是将每日的收支差额算出来,然后再和期初余额用开窗函数进行每日累加实现了我的需求

访客登录 发布于 2022-3-31 11:34 (编辑于 2022-4-2 16:35)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
CD20160914Lv8专家互助
发布于2022-3-31 13:33

2021-12-31 假如是500

那么你们填报人员,每天填的数据是如何的,有时间吧。。有入有出。。你们业务填报是不是类似流水账一样如下

2022-01-01   入  30

2022-01-01   出  15

2022-01-02   出   3

  • 访客登录 访客登录(提问者) 有时间,就是这样的,然后算出1月1日的期末余额是500+30-15=515,再将这个515赋值给1月2日的期初,进行循环计算
    2022-03-31 13:35 
  • CD20160914 CD20160914 回复 访客登录(提问者) 这个你是想他们填写后。在提交的时候就自动得到一个期末的515和第二天期初的515?如果他们在同一天填写多天的数据呢?
    2022-03-31 13:37 
  • CD20160914 CD20160914 回复 访客登录(提问者) 还有一个其实期末余额不用存。在查询的时候直接sql动态计算出来。。。也可以的。
    2022-03-31 13:41 
  • 访客登录 访客登录(提问者) 回复 CD20160914 他们提交后,对应的期初期末余额表就会计算出这两个值可供他们查看
    2022-03-31 13:48 
  • 访客登录 访客登录(提问者) 回复 CD20160914 求一个sql计算语句,我就是在头疼这个,感觉没找到方法
    2022-03-31 13:49 
最佳回答
0
shinger@126.comLv2见习互助
发布于2022-3-31 16:59

使用开窗函数实现,大致代码如下

if OBJECT_ID('tempdb..#T') is not null drop table #T

create table #T(日期 date,期初 int default 0,收入 int default 0,支出 int default 0,期末 int default 0)

insert  into #T(日期,期初,收入,支出)

select '2022-01-01',500,0,0

union all

select '2022-01-02',0,222,123

union all

select '2022-01-03',0,323,125

union all

select '2022-01-06',0,125,234

;with t as (select *,sum(期初+收入-支出) over(order by 日期) 余额 From #T)

update t set 期末=余额

select * from #T

  • 3关注人数
  • 825浏览人数
  • 最后回答于:2022-4-2 16:35
    请选择关闭问题的原因
    确定 取消
    返回顶部