sql里的累加值怎么还原成实际值

image.png

这个数是月度累加值,怎么变成实际值比如:算2月份的值就是拿2月份的值减去1月份的值,就是2月份的实际值

吴浩 发布于 2019-6-17 16:38
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
doudekaixinLv6中级互助
发布于2019-6-18 10:16(编辑于 2019-6-18 10:16)
select * from (select t1.`业务类型`,t1.`月份`,t1.`累计值`,t2.`月份` 上月月份,t2.`累计值` 上月累计值,t1.`累计值`-t2.`累计值` 当月实际值 from test11 t1,test11 t2
where t1.`业务类型`=t2.`业务类型`
and t1.`月份`=t2.`月份`+1
union 
select t3.`业务类型`,t3.`月份`,t3.`累计值`,0 上月月份,0 上月累计值,t3.`累计值` 当月实际值 from test11 t3
WHERE t3.`月份`=1) t4
ORDER BY t4.`业务类型`,t4.`月份`

image.png

image.png

  • 吴浩 吴浩(提问者) 哇,兄弟你这个t1.`月份`=t2.`月份`+1很精髓啊,牛皮啊
    2019-06-18 10:42 
最佳回答
0
刘牛牛Lv3见习互助
发布于2019-6-17 16:48
  1. 你可以用sql去处理,自关联,求出每个月的值,以及他的下个月的值,然后做个差,

  2. 你可以拖到单元格里,这行值纵向扩展,然后用层次坐标函数解决。层次坐标函数参考文档:http://help.finereport.com/doc-view-802.html

  • 吴浩 吴浩(提问者) 我这个扩展出来的很多东西,横向扩展,纵向扩展,说的简单但是实际做起来并不是你说的那样
    2019-06-17 16:58 
  • 刘牛牛 刘牛牛 回复 吴浩(提问者) 那你就用sql处理啊,自关联求出每个月的数,以及下个月的数,然后相减,不就是当月的数?
    2019-06-17 17:02 
  • 吴浩 吴浩(提问者) 回复 刘牛牛 sql里直接出来1到当前月的数,你怎么减,case when 吗。这个不是单一的数据。
    2019-06-17 17:10 
最佳回答
0
grjhr994857761Lv5见习互助
发布于2019-6-18 09:44

直接sql里面关联原表前一个月求出差值么、。

  • 吴浩 吴浩(提问者) 说是这么说,但是做起来没那么容易,第一他是自动带出1到当前月的数,第二他还关联其他字段,也会带出很多值。比如说,部门1到部门10在1到6月份产生了累加数。你怎么减才能让部门1到部门10出来实际数
    2019-06-18 10:06 
  • 4关注人数
  • 1073浏览人数
  • 最后回答于:2019-6-18 10:16
    请选择关闭问题的原因
    确定 取消
    返回顶部