累计值问题?求大佬进来解答一下?

年月是参数。

当月份为1时,则数据为上一年的全部月份的购入数量-出库数量。

当月份不是1的时候,则数据为本年的第一个月到上个月的购入数量-出库数量这种

这种用case when 是可以实现吗?

FineReport Cunfan 发布于 2019-8-12 16:48
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
CunfanLv5见习互助
发布于2019-8-13 11:39


lag(理论库存) over (partition by销售客户,品规全称 order by substring (年月,1,4),substring (年月,6,2)) as 期初数量


sum(d.inn_num-c.out_num)over (partition by substring(c.[年月],1,4),c.[销售客户],c.[品规全称] order by substring(c.[年月],6,2)) as '理论库存'


使用了开窗sum()over(partition by order by)函数,然后根据我自己的需求利用lag函数进行数据变换,得到最终结果



最佳回答
0
wd210010Lv7高级互助
发布于2019-8-12 16:56

case when substr(to_char(SYSDATE,'yyyy-mm'),6,2) ='01' then 取 to_char(SYSDATE,'yyyy')-1 的数据

else 取 to_char(SYSDATE,'yyyy')的数据


最佳回答
0
Lz爱学习Lv6见习互助
发布于2019-8-12 17:03

if($月份==1,sum(去年全部购入数量)-出库,本年的第一个月到上个月的购入数量-出库数量)

”本年的第一个月到上个月的购入数量-出库数量“可以参考逐层累计:逐层累计-https://help.finereport.com/doc-view-348.html

  • 2关注人数
  • 519浏览人数
  • 最后回答于:2019-8-13 11:39
    请选择关闭问题的原因
    确定 取消
    返回顶部