帆软的sql代码问题

${IF(Query_type="DAY","AND 订购日期 >= '"+ YYYYMMDD_S+"' AND 订购日期< '"+YYYYMMDD_E+"'" ,

IF(Query_type="WEEK","AND 订购日期>='"+YYYYWW_S+"' AND 订购日期<'"+YYYYWW_E+"'","AND 订购日期>='"+YYYYMM_S+"' AND 订购日期<'"+YYYYMM_E+"'"))}


想请问一下,这段代码是什么意思?

代码来源:https://help.finereport.com/doc-view-2930.html

用户MtzZM5884 发布于 2020-4-13 11:33
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
1
yiyemeiyingLv4高级互助
发布于2020-4-13 11:38(编辑于 2020-4-13 11:39)

三种情况,判断参数Query_type的值,如果参数值DAY,条件就过滤日对应的参数范围取数;如果参数值WEEK,条件就过滤周对应的参数范围取数;否则的话,条件就过滤月对应的参数范围取数。


  • 用户MtzZM5884 用户MtzZM5884(提问者) select *from 订单 where 1=1 ${IF(Query_type=\"DAY\",\"AND 订购日期 >= \'\"+ YYYYMMDD_S+\"\' AND 订购日期< \'\"+YYYYMMDD_E+\"\'\" , IF(Query_type=\"WEEK\",\"AND 订购日期>=\'\"+YYYYWW_S+\"\' AND 订购日期<\'\"+YYYYWW_E+\"\'\",\"AND 订购日期>=\'\"+YYYYMM_S+\"\' AND 订购日期<\'\"+YYYYMM_E+\"\'\"))} 上面是where 1 =1 ,后面直接跟这段代码,是啥意思?
    2020-04-13 11:42 
  • yiyemeiying yiyemeiying 回复 用户MtzZM5884(提问者) 比较下下面二种情况,你就能连接为什么需要有1=1了! where and xx=xx 和 where 1=1 and xx=xx
    2020-04-13 11:50 
最佳回答
0
axingLv6专家互助
发布于2020-4-13 11:39

选择day类型,按日开始结束时间查询

选择week类型,按周开始结束时间查询

选择month类型,按月开始结束时间查询


image.png

  • 用户MtzZM5884 用户MtzZM5884(提问者) select *from 订单 where 1=1 ${IF(Query_type=\"DAY\",\"AND 订购日期 >= \'\"+ YYYYMMDD_S+\"\' AND 订购日期< \'\"+YYYYMMDD_E+\"\'\" , IF(Query_type=\"WEEK\",\"AND 订购日期>=\'\"+YYYYWW_S+\"\' AND 订购日期<\'\"+YYYYWW_E+\"\'\",\"AND 订购日期>=\'\"+YYYYMM_S+\"\' AND 订购日期<\'\"+YYYYMM_E+\"\'\"))} 上面是where 1 =1 ,后面直接跟这段代码,是啥意思?
    2020-04-13 11:42 
  • axing axing 回复 用户MtzZM5884(提问者) 就是上面所说的意思,where 1=1 是让后面的and条件拼接上不会报错
    2020-04-13 11:45 
最佳回答
0
白白胖胖Lv2见习互助
发布于2020-4-13 11:41

这个查询参数设置了三个查询参数,分别为“日查询”,“周查询”和“月查询”,但是点击查询的时候,只能按照一种方式进行查询,即点击查询的时候,或者按照一天查询,或者按照一周进行查询,或者按照一个月进行查询。

Query_type 这个字段定义的查询的类型,分别对应为“日”,“周”,和“月”。

“订购日期”对应开始时间参数,“结束日期”对应结束时间参数。


image.png

  • 4关注人数
  • 608浏览人数
  • 最后回答于:2020-4-13 11:41
    请选择关闭问题的原因
    确定 取消
    返回顶部