两级指标怎么筛选?第一层指标为A时,下一层级指标有多个;第一层指标为B时,下一层级指标有多个

where 1=1

(if '${指标}'=='B',

${if(len(编号1)==0,"","and 编号1 in ('"+编号1+"')")},

${if(len(编号2)==0,"","and 编号2 in ('"+编号2+"')")})

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

你A和B都有多个。你现在的问题是什么?没有明白

where 1=1

${if(指标="A"&&len(编号1)>0,"and 编号1 in ('"+编号1+"')",

if(指标="B"&&len(编号2)>0,"and 编号2 in ('"+编号2+"')",""))}

  • yzm8kreH8251801 yzm8kreH8251801(提问者) 就是在where那儿做判断,当我选择A时,编号出现的是A下面${if(len(编号1)==0,\"\",\"and 编号1 in (\'\"+编号1+\"\')\");当我选择B时,编号出现的是B下面${if(len(编号2)==0,\"\",\"and 编号2 in (\'\"+编号2+\"\')\")};
    2023-05-10 15:15 
  • yzm8kreH8251801 yzm8kreH8251801(提问者) where 1=1 (if \'${指标}\'==\'B\', ${if(len(编号1)==0,\"\",\"and 编号1 in (\'\"+编号1+\"\')\")}, ${if(len(编号2)==0,\"\",\"and 编号2 in (\'\"+编号2+\"\')\")})
    2023-05-10 15:16 
  • yzm8kreH8251801 yzm8kreH8251801(提问者) 我问题中这样写报错的:where 1=1 (if \'${指标}\'==\'B\', ${if(len(编号1)==0,\"\",\"and 编号1 in (\'\"+编号1+\"\')\")}, ${if(len(编号2)==0,\"\",\"and 编号2 in (\'\"+编号2+\"\')\")}
    2023-05-10 15:16 
  • CD20160914 CD20160914 回复 yzm8kreH8251801(提问者) 看上面修改。。。
    2023-05-10 15:22 
  • yzm8kreH8251801 yzm8kreH8251801(提问者) 回复 CD20160914 什么意思
    2023-05-10 15:30 
最佳回答
0
青春只因年少Lv6中级互助
发布于2023-5-10 15:16(编辑于 2023-5-10 15:47)

你这是参数联动

https://help.fanruan.com/finereport/doc-view-3634.html

不是你这样写的

前一个参数过滤后一个参数,实现参数联动.

image.png

  • yzm8kreH8251801 yzm8kreH8251801(提问者) 对的,where 1=1 (if \'${指标}\'==\'B\', ${if(len(编号1)==0,\"\",\"and 编号1 in (\'\"+编号1+\"\')\")}, ${if(len(编号2)==0,\"\",\"and 编号2 in (\'\"+编号2+\"\')\")})
    2023-05-10 15:16 
  • yzm8kreH8251801 yzm8kreH8251801(提问者) 上面那样写会报错,我想问下怎么做?
    2023-05-10 15:17 
最佳回答
0
不一样的橘子Lv3见习互助
发布于2023-5-10 15:21(编辑于 2023-5-10 15:26)

where 1=1

这里少写了一个${if ('${指标}'=='B',

${if(len(编号1)==0,"","and 编号1 in ('"+编号1+"')")},

${if(len(编号2)==0,"","and 编号2 in ('"+编号2+"')")})}外层应该是 {}圈起来  用英文括号,刚刚是中文括号

用这个:

where 1=1${if(指标=='B',${if(len(编号1)==0,"","and 编号1 in ('"+编号1+"')")},${if(len(编号2)==0,"","and 编号2 in ('"+编号2+"')")})}

最佳回答
0
yzm8kreH8251801Lv2见习互助
发布于2023-5-10 19:19

在大神的帮助下已完成

  • 3关注人数
  • 416浏览人数
  • 最后回答于:2023-5-10 19:19
    请选择关闭问题的原因
    确定 取消
    返回顶部