这个数据集错在那里了,请大神帮忙更正一下

SELECT a.hdrid     FROM fr_project_hdr a          $IF(sql("ztsc","SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= '${项目名称}' and dtlid=nvl('${子项目名称}',0)       AND CSTBUTE=2,1,1)>=1,",(SELECT a.hdrid,               a.dtlid,                a.GKUNIFYCST,               b.cstid          FROM fr_project_cst a,               (SELECT ID CSTID,SINOPHARM_ID FROM CMSXTY.SPM_PRODUCER_EXT@CX_CMS) b         WHERE a.CSTBUTE=2 AND a.hdrid='" + 项目名称 + "' AND a.dtlid=nvl('" + 子项目名称 + "',0)           AND a.GKUNIFYCST=b.SINOPHARM_ID       ) C","")    WHERE 1=1     $IF(sql("ztsc","SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= '" + 项目名称 + "' and dtlid=nvl('" + 子项目名称 + "',0)       AND CSTBUTE=2,1,1)>=1,"a.id=c.hdrid(+) and a.dtlid=c.dltid(+)")

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

你这个问题很多,标准是这个写法  ${} ,在${}里面不能在写$le ,在""中${}是不生效的,sql函数也是错误写法

没看明白,你要什么效果。。

======

SELECT a.hdrid FROM fr_project_hdr a ${IF(sql("ztsc","SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= '" + 项目名称 + "' and dtlid=nvl('" + 子项目名称 + "',0) AND CSTBUTE=2",1,1)>=1, 

",(SELECT a.hdrid, a.dtlid, a.GKUNIFYCST, b.cstid FROM fr_project_cst a, (SELECT ID CSTID,SINOPHARM_ID FROM CMSXTY.SPM_PRODUCER_EXT@CX_CMS) b WHERE a.CSTBUTE=2 AND a.hdrid='" + 项目名称 + "' AND a.dtlid=nvl('" + 子项目名称 + "',0) AND a.GKUNIFYCST=b.SINOPHARM_ID ) C" ,"")}

WHERE 1=1 

$IF{(sql("ztsc","SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= '" + 项目名称 + "' and dtlid=nvl('" + 子项目名称 + "',0) AND CSTBUTE=2",1,1)>=1, "and a.id=c.hdrid(+) ", "")}

  • 帆软用户cp0VecIO4p 帆软用户cp0VecIO4p(提问者) SELECT a.hdrid FROM fr_project_hdr a $IF(sql(\"ztsc\",\"SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= \'\" + 项目名称 + \"\' and dtlid=nvl(\'\" + 子项目名称 + \"\',0) AND CSTBUTE=2\",1,1)>=1,\",(SELECT a.hdrid, a.dtlid, a.GKUNIFYCST, b.cstid FROM fr_project_cst a, (SELECT ID CSTID,SINOPHARM_ID FROM CMSXTY.SPM_PRODUCER_EXT@CX_CMS) b WHERE a.CSTBUTE=2 AND a.hdrid=\'\" + 项目名称 + \"\' AND a.dtlid=nvl(\'\" + 子项目名称 + \"\',0) AND a.GKUNIFYCST=b.SINOPHARM_ID ) C\",\"\") WHERE 1=1 $IF(sql(\"ztsc\",\"SELECT count(1) from fr_project_cstattribute where 1=1 and hdrid= \'\" + 项目名称 + \"\' and dtlid=nvl(\'\" + 子项目名称 + \"\',0) AND CSTBUTE=2\",1,1)>=1,\"and a.id=c.hdrid(+) and a.dtlid=c.dltid(+)\",\"\") 还是不对
    2023-11-02 11:22 
  • snrtuemc snrtuemc 回复 帆软用户cp0VecIO4p(提问者) 在你这个很乱,都看不懂你的if判断什么时候结束,什么时候拼接。。。全乱的。。
    2023-11-02 11:27 
  • 帆软用户cp0VecIO4p 帆软用户cp0VecIO4p(提问者) 回复 snrtuemc 他这个粘贴进来的时候是好的,重新进来后就成这样了!
    2023-11-02 11:31 
  • snrtuemc snrtuemc 回复 帆软用户cp0VecIO4p(提问者) 不是斜杠问题,你这个sql就看不懂,你第一个if判断,sql()函数中,什么时候结束,后面的if是在第一个内,还是另起,都看不出。。
    2023-11-02 11:36 
  • 帆软用户cp0VecIO4p 帆软用户cp0VecIO4p(提问者) 回复 snrtuemc 能加WX吗?
    2023-11-02 11:37 
最佳回答
0
Z4u3z1Lv6专家互助
发布于2023-11-2 11:11(编辑于 2023-11-2 11:19)

需要“{”括号。if里面不需要$

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

看不懂你SQL要表达什么意思,改不出来

eg:(注意1=1 后面的格式)

select * from table where 1=1 ${if(len(参数名)==0,""," and 字段名 in('"+参数名+"')")}

  • 1关注人数
  • 214浏览人数
  • 最后回答于:2023-11-2 11:44
    请选择关闭问题的原因
    确定 取消
    返回顶部