两个sql传入日期段,怎么实现小于今天的数据使用第一个,大于今天的数据显示第二个

有两个sql,查询的数据都是日期和数据,例如传入的日期段是8月1号到8月25号,今天是8月8号,8号之前都是用的第一个sql的数据,之后的用第二个sql的数据,怎么实现

FineReport yzm136176 发布于 2024-8-8 14:46
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
JL98Lv6中级互助
发布于2024-8-8 14:50(编辑于 2024-8-8 15:03)

两个SQL union all 拼接一下,之后where条件分别if判断一下两个日期时间段里是否包含今天,分别过滤就行了

SQLserver 为例:

WHERe 1=1 

${IF(STR_DATE <= TODAY() && END_DATE >= TODAY(),"AND INSPECTION_DATE >='"+STR_DATE+"'","AND INSPECTION_DATE >='"+STR_DATE+"'")}

${IF(STR_DATE <= TODAY() && END_DATE >= TODAY(),"AND INSPECTION_DATE <=getdate()","AND INSPECTION_DATE >='"+END_DATE+"'")}

第二个

WHERe 1=1 

${IF(STR_DATE <= TODAY() && END_DATE >= TODAY(),"AND INSPECTION_DATE >=getdate()","AND INSPECTION_DATE >='"+STR_DATE+"'")}

${IF(STR_DATE <= TODAY() && END_DATE >= TODAY(),"AND INSPECTION_DATE <='"+END_DATE+"'","AND INSPECTION_DATE <='"+END_DATE+"'")}

  • yzm136176 yzm136176(提问者) ORACLE怎么写?getdate()不可以用
    2024-08-08 17:03 
  • JL98 JL98 回复 yzm136176(提问者) getdate()替换成SYSDATE
    2024-08-08 17:08 
最佳回答
0
用户k6280494Lv6资深互助
发布于2024-8-8 14:49

${if(rq<today(),"sq1","sq2")}

最佳回答
0
华莉星宸Lv7资深互助
发布于2024-8-8 14:52

直接在数据集里面判断

${if(rq<today(),"/*","")}

SQL1部分

${if(rq<today(),"*/","")}

${if(rq>=today(),"/*","")}

SQL2部分

${if(rq>=today(),"*/","")}

  • 4关注人数
  • 240浏览人数
  • 最后回答于:2024-8-8 15:03
    请选择关闭问题的原因
    确定 取消
    返回顶部