当前时间大于10号数据选当月数据否则上月数据(这种情况怎么写?)

默认情况:(默认选“年度累计”)

如果当前时间小于等于10号,数据默认是上月数据,大于10号为当月数据

如果当前时间大于10号,数据为当月数据

筛选器情况:

当筛选器选择202308

如果当前时间小于等于10号,数据默认是上月数据,大于10号为当月数据

如果当前时间大于10号,数据为当月数据

当筛选器选择202307

数据为当月数据(202307)

当筛选器选择202306

数据为当月数据(202306)

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

SELECT * FROM TABLE WHERE 1=1 ${IF(LEN(控件名)==0,"",IF(DAY(TODAY())<=10," AND 日期字段='"+FORMAT(MONTHDELTA(FORMAT(CONCATENATE(控件名,"01"),"yyyy-MM-dd"),-1),"yyyyMM")+"'"," AND 日期字段='"+控件名+"'"))}

最佳回答
0
坚定的小帆薯Lv7高级互助
发布于2023-8-23 17:20(编辑于 2023-8-23 17:40)

写个公式转换即可的,

新建立一个模板参数,用公式【其中$month为原参数】

IF(AND(DAY(TODAY())<=10,FORMAT(TODAY(),'yyyy-MM')=$month),FORMAT(MONTHDELTA(TODAY(),-1),'yyyy-MM'),$month)

然后后面写SQL直接用这个参数,比如select * from 表 where 年月='${years}'

image.png

最佳回答
0
用户k6280494Lv6专家互助
发布于2023-8-23 17:27

${if(today()>FORMAT(today(),"yyyy-MM-10"),"and 字段='"+参数+"'","and 字段='"+FORMAT(MONTHDELTA(CONCATENATE(参数,"-01"),-1),"yyyy-MM")+"'")}

最佳回答
0
ID1208Lv6高级互助
发布于2023-8-23 17:29

如果数据比较简单,可以根据条件,把上月和本月的数据都列出来,参数控制显示对应的列

--参考https://help.fanruan.com/finereport/doc-view-2079.html

  • 4关注人数
  • 217浏览人数
  • 最后回答于:2023-8-23 17:40
    请选择关闭问题的原因
    确定 取消
    返回顶部