刚接触帆软想问一下这样写有什么问题,为什么查不出数据呀

select *

from material_preparation_record mpr

where 1=1

 and product_code='${物料编码}'

 and product_name='${物料名称}'

 and product_spec='${物料规格}'

  and ${if(a=1,"batch='" +到货批号+"'","pallet_id='"+托盘id+"'")}

FineReport 帆软用户tGwKLWuw2o 发布于 2025-7-21 18:03
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共4回答
最佳回答
0
微笑背后的无奈Lv4见习互助
发布于2025-7-22 09:13

单纯看sql 语法好像没啥问题,具体的你可以在数据集这里模拟一下,写好你查询的参数,然后预览查询的SQL,这样子就知道是 sql写法问题 还是说这个查询条件就是没有数据

image.png

最佳回答
0
华莉星宸Lv7专家互助
发布于2025-7-21 18:23(编辑于 2025-7-21 18:24)
select *
from material_preparation_record mpr
where 1=1
 and product_code='${物料编码}'
 and product_name='${物料名称}'
 and product_spec='${物料规格}'
 ${if(a=1,"and batch='" +到货批号+"'","and pallet_id='"+托盘id+"'")}

最佳回答
0
Z4u3z1Lv6专家互助
发布于2025-7-21 22:21

这个你需要检查传入的参数值了

把日志级别改成debug后再预览,然后去日志里面提取到参数值的SQL.提取到SQL后用数据库管理软件查询看有数据没(可能数据库里面有空格什么的)

最佳回答
0
WJ6BirddLv2见习互助
发布于2025-7-22 08:50

select *

from material_preparation_record mpr

where 1=1

 and product_code='${物料编码}'

 and product_name='${物料名称}'

 你这么写就是必须要把后面的查询条件都写上才能查出来

${if(len(a) = 0,"","and bm = '"+ a +"'")}这样写查询条件可带可不带都能查出来,看你的需求了

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