帆软if筛选条件怎么写

当输入月份为当月时,

SELECT sum(le.NUM) FROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$') AND to_char(le.MONTH_ID , 'yyyy-mm') =TO_CHAR(SYSDATE, 'YYYY-MM') AND le.PRODUCTION_DATE >= TRUNC(SYSDATE, 'MM')

AND le.PRODUCTION_DATE <= SYSDATE AND le.LINENAME IN('A01', 'A02')

当输入月份为历史月份时,SELECT sum(le.NUM) FROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$') AND to_char(le.MONTH_ID , 'yyyy-mm') ='2024-02' AND le.LINENAME IN('A01', 'A02')

这个语句怎么使用一个if实现筛选

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

cs就是控件名,格式是yyyy-MM格式

${if(cs=format(today(),"yyyy-MM"),"SELECT sum(le.NUMFROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$'AND to_char(le.MONTH_ID , 'yyyy-mm') =TO_CHAR(SYSDATE'YYYY-MM'AND le.PRODUCTION_DATE >= TRUNC(SYSDATE'MM')","SELECT sum(le.NUM) FROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$') AND to_char(le.MONTH_ID , 'yyyy-mm') ='"+cs+"' AND le.LINENAME IN('A01', 'A02')")}

最佳回答
0
CovidLv3高级互助
发布于2024-3-12 11:34(编辑于 2024-3-12 11:37)

SELECT sum(le.NUM) FROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$') AND to_char(le.MONTH_ID , 'yyyy-mm') =TO_CHAR(SYSDATE, 'YYYY-MM') AND le.PRODUCTION_DATE >= TRUNC(SYSDATE, 'MM')

AND le.PRODUCTION_DATE <= SYSDATE AND le.LINENAME IN('A01', 'A02') ${if(AND(month(today())==month(参数名),YEAR(today())==YEAR(参数名)),""," AND 1<>1")}

union all

SELECT sum(le.NUM) FROM T_CO_WALKTHROUGHS_SCHEDULING le WHERE REGEXP_LIKE(le.num, '^-?[0-9]+(\.[0-9]+)?$') AND to_char(le.MONTH_ID , 'yyyy-mm') ='2024-02' AND le.LINENAME IN('A01', 'A02') ${if(AND(month(today())==month(参数名),YEAR(today())==YEAR(参数名))," AND 1<>1","")}

-------------

也可以换成

${if(AND(month(today())==month(参数名),YEAR(today())==YEAR(参数名)),SQL1,SQ2)}

  • 2关注人数
  • 213浏览人数
  • 最后回答于:2024-3-12 11:37
    请选择关闭问题的原因
    确定 取消
    返回顶部