在帆软公式中SQL的IF拼接

image.png

image.png

SQL("REPORTS", "SELECT AREGION,BREGION FROM USER_POWER WHERE 1=1 ${if(len('" + C2 + "')=0,'','AND AREGION in ('" + SUBSTITUTE(C2, ",", "','") + "')')} GROUP BY AREGION,BREGION", 2)

image.png

不要IF可行,但是我的IF必须要嵌套在里面,因为我这里只给了一个IF的例子,我会有多个IF的判断,这怎么拼接呢,显示公式合法,但是执行是报错的

wangqiaofeng 发布于 2021-1-5 17:37 (编辑于 2021-1-5 17:47)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共2回答
最佳回答
0
axingLv6专家互助
发布于2021-1-5 17:52(编辑于 2021-1-5 19:37)
SQL("REPORTS", "SELECT AREGION,BREGION FROM USER_POWER WHERE 1=1 "+if(len(C2)=0,"","AND AREGION in ('"+SUBSTITUTE(C2, ",", "','")+"')")+" GROUP BY AREGION,BREGION", 2)


  • wangqiaofeng wangqiaofeng(提问者) SQL(\"REPORTS\", \"SELECT AREGION,BREGION FROM USER_POWER WHERE 1=1 \"+if(len(C2)=0,\"\",\"AND AREGION in (\'\"+SUBSTITUTE(C2, \",\", \"\',\'\")+\"\')\")+\" GROUP BY AREGION,BREGION\", 2) 少了个右括号
    2021-01-05 18:21 
  • axing axing 回复 wangqiaofeng(提问者) 嗯嗯,修改了
    2021-01-05 19:37 
最佳回答
0
luojian0323Lv7资深互助
发布于2021-1-5 17:39(编辑于 2021-1-5 17:44)

no,no,no

不是这样用的

if(len(C2)=0,SQL("REPORTS", "SELECT AREGION,BREGION FROM USER_POWER",1,1),SQL("REPORTS", "SELECT AREGION,BREGION FROM USER_POWER WHERE AREGION in ('"+ SUBSTITUTE(C2, ",", "','")+"') GROUP BY AREGION,BREGION",1,1))


  • wangqiaofeng wangqiaofeng(提问者) 我有多个IF,没有办法写在外部
    2021-01-05 17:46 
  • luojian0323 luojian0323 回复 wangqiaofeng(提问者) 那你写在数据集里,这样写影响报表效率。得不尝失。
    2021-01-05 18:10 
  • luojian0323 luojian0323 回复 wangqiaofeng(提问者) 写在数据集里然后使用动态注入参数。一样可以实现你要的效果
    2021-01-05 18:11 
  • wangqiaofeng wangqiaofeng(提问者) 回复 luojian0323 不行,我这个用不了动态参数,我是用做数据字典的,在数据集里面写就不能获取到动态的单元格,每次都是第一行的值,所以才想用数据字典的公式
    2021-01-05 18:19 
  • luojian0323 luojian0323 回复 wangqiaofeng(提问者) 那你用数据集函数啊: 数据集名.group(字段2,字段1=单元格)
    2021-01-05 18:21 
  • 3关注人数
  • 1270浏览人数
  • 最后回答于:2021-1-5 19:37
    请选择关闭问题的原因
    确定 取消
    返回顶部