数据集参数问题

有多个数据集参数,比如统计月份month,时间段参数start和end,选择月份的时候,,时间段的值清空,,同理,选择时间段的时候,,统计月份参数清空;;现在根据选择哪个值,where字句中需要判断来过滤时间或者时间段;下面截图所示,报错

image.png

FineReport liuyan123 发布于 2020-7-11 14:06 (编辑于 2020-7-11 15:09)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共3回答
最佳回答
0
zsh331Lv8专家互助
发布于2020-7-11 14:10

下拉树与动态显示查询按钮.cpt

demo/parameter/下拉树与动态显示查询按钮.cpt


楼主:这个模板涵盖了你想知道的所有知识点。

image.png

  • liuyan123 liuyan123(提问者) where ${if(len(month)=0, \" and CONVERT(VARCHAR(10), replace(A.ActualStartDateTime,\'/\',\'-\'), 120) >= \"+ start + \" and CONVERT(VARCHAR(10), replace(A.ActualEndDateTime,\'/\',\'-\'), 120) <= \'\" + end+\"\'\", \"\")} ${if(len(start)=0, \" and CONVERT(VARCHAR(7), replace(A.ActualStartDateTime,\'/\',\'-\'), 120) = \'\" + month+\"\'\", \"\")} 这样写报错呢?
    2020-07-11 15:07 
  • zsh331 zsh331 回复 liuyan123(提问者) 如果if语法没有问题的话,记得在 where 与 if 之间添加一个 1=1 的恒成立表达式。demo的sql中写的很清楚,别漏了。
    2020-07-11 18:17 
最佳回答
0
luojian0323Lv7资深互助
发布于2020-7-11 15:38

where 1=1

最佳回答
0
IceBall09Lv6中级互助
发布于2020-7-13 09:43
SELECT * FROM 订单 where 1=1 
${if(type=="日报"," and date(订购日期)>='"+ start +"'"+" and date(订购日期)<='"+ end +"'",
  if(type=="月报"," and strftime('%m',订单.订购日期)='"+ month+"'"+" and strftime('%Y',订单.订购日期)='"+ year+"'"," and strftime('%Y',订单.订购日期)='"+ year+"'"))}


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