怎么实现参数下拉框选择某个月份时,将之前月份的数据都汇总然后展示在这个月份,之后的月份的数据不汇总?

比如当我选择2月时,将1月和2月的数据相加显示在2月的单元格里,3、4、5月份的分别独立展示;(如图2)

当我选择3月时,将1、2、3月的数据相加展示在3月的单元格里,4、5月的独立展示(如图3)

FineReport 二向箔 发布于 2022-9-1 09:50
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
2
RiveryLv5中级互助
发布于2022-9-1 10:00(编辑于 2022-9-1 10:00)

用case when判断,把小于等于当前月份的月份都变为当前月份,然后根据月份汇总就好了

with a as(select distinct substr(dt_date,6,2) as 月份 

from R_TEST5)

select 月份,case when 月份<= '${月份参数}' then '${月份参数}' else 月份 end as 月份

from a

image.png

最佳回答
1
yzm339714Lv6中级互助
发布于2022-9-1 10:01

提供个思路,如果每个月份的后面都加一列,如果月份是固定的,就是 2月后面是1加2月的,3月后面是1加2加3月的,如果是扩展出来的, 就是 sum(ds1.select(值,月份<= 参数值 )) ,然后这些列就根据条件属性判断列宽是否为0,月份固定的话,就是固定写参数值 = 几几几  ,扩展的话 ,就判断  参数值 = B1(月份的单元格) 

最佳回答
0
lxy2Lv6中级互助
发布于2022-9-1 10:03

with a1 as(

select 20 as a,'2022-01' as b

union all

select 30 as a,'2022-02' as b

union all

select 40 as a,'2022-03' as b

union all

select 50 as a,'2022-04' as b

),

b1 as (

select max(b) as b,sum(a) as a from a1 where b<='${参数}'

)

select a1.b,

case when a1.b<='${参数}' then b1.a

     else a1.a

end as new_a

from a1

left join b1 on a1.b=b1.b

  • 3关注人数
  • 436浏览人数
  • 最后回答于:2022-9-1 10:03
    请选择关闭问题的原因
    确定 取消
    返回顶部