有年份和月份筛选,如何根据年份月份拼接得到筛选前5个月的数据

筛选框如下:

控件名称为:年份,筛选框为下拉,值为2019-2025

控件名称为:月份,筛选框为下拉,值为01-12

数据库存的表信息为:years,months分别对应年份月份

如何在数据集中写where条件,使得数据能筛选筛选框对应的前5个月的数据

select 

to_date(years||'-'||months,'yyyy-mm') as ym 

,*

from dm_fin.ta_fin_loss_board_summary

where 1=1

${if(len(月份)=0, "" , if(月份<'05', "and ym >= '"+(年份-1)||'-'||(月份+8)||'-01'+"' and ym <= '"+(年份)||'-'||(月份)||'-01'+"'" , "and ym >= '"+(年份)||'-'||(月份-4)||'-01'+"' and ym <= '"+(年份)||'-'||(月份)||'-01'+"'"))}

FineReport liuyunxia827729 发布于 2022-11-14 10:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-11-14 10:07

在年份 月份必填的情况下

WHERE years||months>='${FORMAT(MONTHDELTA(DATE($年份,$月份,1),-5),"yyyyMM")}' AND years||months<='${FORMAT(DATE($年份,$月份,1),"yyyyMM")}'

  • liuyunxia827729 liuyunxia827729(提问者) where 1=1 and years||months>=\'${FORMAT(MONTHDELTA(DATE(年份,月份,1),-5),\"yyyyMM\")}\' and years||months<=\'${FORMAT(DATE(年份,月份,1),\"yyyyMM\")}\'
    2022-11-14 10:24 
  • Z4u3z1 Z4u3z1 回复 liuyunxia827729(提问者) 要不要1=1 and 都无所谓:必填的话这个没必要,非必填后面也没对参数值进行判断 ^_^
    2022-11-14 10:26 
  • 1关注人数
  • 369浏览人数
  • 最后回答于:2022-11-14 10:07
    请选择关闭问题的原因
    确定 取消
    返回顶部