参数查询问题,报表设置了两个参数month,type

参数查询问题,报表设置了两个参数   month   ,   type    ,我想查询时,不选 参数则查询全部,选中参数就按参数查询,这个 where 后面要怎样写的。

如下表述试了,不行,要怎样更改sql 语句的

 ${if(len(type) == 0,"","and  a.type ='" + type + "'")} 

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

select * from 表

where 1=1

${if(len(type) == 0,"","and  a.type ='" + type + "'")} 

${if(len(month) == 0,"","and  a.month='" + month+ "'")} 

  • 用户RzfYB0094268 用户RzfYB0094268(提问者) 1=1 有什么作用的
    2022-09-20 16:13 
  • snrtuemc snrtuemc 回复 用户RzfYB0094268(提问者) 就是当month , type为空时候,where 后面至少有语句,不是空的,导致sql报错,1=1就是条件永远为真查询全部
    2022-09-20 16:16 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2022-9-20 16:09(编辑于 2022-9-20 16:09)

where 1=1 ${if(len(type) == 0,"","and  a.type ='" + type + "'")} 

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

最好参数名不要和系统函数重名MONTH可以改成 month_

  • 2关注人数
  • 265浏览人数
  • 最后回答于:2022-9-20 16:09
    请选择关闭问题的原因
    确定 取消
    返回顶部