上月与上上月环比计算

SQL写的参数:( 取上月) z202307

${if(CBMK ='年度累计',"and left(calmonth,4)=substring(now(),1,4) and 

     cast(right(calmonth,2) as INTEGER) = cast(substr(now(),6,2)-1 as INTEGER)","and calmonth = '"+ CBMK +"'")}

下拉框里 年月+年月累计QQ截图20230823160914.png

目前需求是:默认筛选 年月累计  取 的是202307和202306 (上面是取202307)

现在就是当筛选器选择年月的时候 怎么写呢?

筛选器选202308 取的202307和202306(与年月累计的一致)

选202307 取的是202306和202305 

FineReport 慧慧036103 发布于 2023-8-23 16:10
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
CT1448Lv5初级互助
发布于2023-8-23 16:27(编辑于 2023-8-23 16:33)

${if(CBMK ='年度累计',"and left(calmonth,6) in ('" + FORMAT(MONTHDELTA(today(),-1),'yyyyMM') + "','" + FORMAT(MONTHDELTA(today(),-2),'yyyyMM') + "')","and left(calmonth,6) in ('" + FORMAT(MONTHDELTA(todate(CBMK,'yyyyMM'),-1),'yyyyMM') + "','" + FORMAT(MONTHDELTA(todate(CBMK,'yyyyMM'),-2),'yyyyMM') + "')")}

image.png

image.png

  • 慧慧036103 慧慧036103(提问者) 不好意思,我是要分开两段的。第一段取上月 第二段取上上月 现在的问题点就是当筛选“202308”怎么写?不知道怎么拼
    2023-08-23 16:43 
  • CT1448 CT1448 回复 慧慧036103(提问者) 什么意思?筛选器选202308 取的202307和202306(与年月累计的一致)这个是你的需求。我发的第一个图不就是求得202307的上月 和 202307 的 上上月吗?
    2023-08-23 16:48 
  • CT1448 CT1448 回复 慧慧036103(提问者) 还是你想查询累计是查当前日期的上月,选月份的时候查月份的上上月?
    2023-08-23 16:49 
  • 慧慧036103 慧慧036103(提问者) 回复 CT1448 因为我的数据底表里取数还有别的条件,所以把上月和上上月分开取了。所以做了两段SQL然后再union。所以参数也是分开写的。不好意思
    2023-08-23 16:51 
  • CT1448 CT1448 回复 慧慧036103(提问者) \"and left(calmonth,6) in (\'\" + FORMAT(MONTHDELTA(todate(CBMK,\'yyyyMM\'),-1),\'yyyyMM\') + \"\',\'\" + FORMAT(MONTHDELTA(todate(CBMK,\'yyyyMM\'),-2),\'yyyyMM\') + \"\')\" --我这里写了两个,放一起了,也可以拆开 :FORMAT(MONTHDELTA(todate(CBMK,\'yyyyMM\'),-1),\'yyyyMM\') //上月 FORMAT(MONTHDELTA(todate(CBMK,\'yyyyMM\'),-2),\'yyyyMM\') //上上月
    2023-08-23 16:54 
  • 2关注人数
  • 184浏览人数
  • 最后回答于:2023-8-23 16:33
    请选择关闭问题的原因
    确定 取消
    返回顶部