请问数据集里面不能写casewhen嘛,那我想要实现这种逻辑该怎么写呢

如下图所示,我想要实现当登录人员角色为5时,可以不需要这个条件,当不是5时,就要写lrry=登录人员这个条件但是我写casewhen怎么显示报错呢该如何写呢image.pngimage.png

SELECT a.ywbzh, a.ywbzhlx,a.fplx, a.yxlx, a.khjlh, b.zgxm, a.ed,  a.qz, a.sxksrq, a.lrrq , a.pch, a.xh,c.mc

FROM ylalrb a LEFT JOIN ryb b ON a.khjlh=b.rybh 

left join ymhjbdmb c on a.ywbzhlx=c.dm where a.fhbz='0' 

(case when '${fin_role}'=5 then '' else and lrry='${finename}' end)

image.png

FineReport 木子一丶 发布于 2024-9-5 10:50
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
华莉星宸Lv7资深互助
发布于2024-9-5 10:52(编辑于 2024-9-5 10:53)

你的写法没问题

要登录决策平台才能看到效果  不然获取不到参数

===========

$fine_role  这个参数可能存在多个值,一个人属于好几个角色

  • 木子一丶 木子一丶(提问者) 主要是你没看到进入就报语句错误吗
    2024-09-05 11:00 
  • 华莉星宸 华莉星宸 回复 木子一丶(提问者) 最后,换成这个${if(find('5',fin_role)>0,"","and lrry='"+fine_name+"'")}
    2024-09-05 11:07 
  • 木子一丶 木子一丶(提问者) 为什么我加这个ksrq,jsrq参数他地下参数不显示出来呢,你这个fin_role和fine_name它地下就会刷新出参数名让我自己填写参数 left join ymhjbdmb c on a.ywbzhlx=c.dm where a.fhbz='0' and lrrq>='"+ksrq+"' and lrrq0,"","and lrry='"+fine_name+"'")}
    2024-09-05 11:17 
  • 木子一丶 木子一丶(提问者) 回复 华莉星宸 lrrq大于等于ksrq,lrrq小于等于jsrq,我该怎么写才能变成你那种可以弹出来的参数
    2024-09-05 11:19 
  • 华莉星宸 华莉星宸 回复 木子一丶(提问者) 完整的复制出来,你这是写在哪里的啊
    2024-09-05 11:19 
最佳回答
0
用户k6280494Lv6专家互助
发布于2024-9-5 10:52(编辑于 2024-9-5 11:03)

用if

SELECT a.ywbzh, a.ywbzhlx,a.fplx, a.yxlx, a.khjlh, b.zgxm, a.ed,  a.qz, a.sxksrq, a.lrrq , a.pch, a.xh,c.mc

FROM ylalrb a LEFT JOIN ryb b ON a.khjlh=b.rybh 

left join ymhjbdmb c on a.ywbzhlx=c.dm where a.fhbz='0' 

${if(fin_role=5,"","and lrry="'+fine_name+'"")}

  • 3关注人数
  • 198浏览人数
  • 最后回答于:2024-9-5 11:03
    请选择关闭问题的原因
    确定 取消
    返回顶部