柱形图的标题,需要用SQL()函数,但是我写了报错,帮忙修改下感谢

"Aging WIP-"+IF(LEN(TIME)<1,"SQL("BU17-OLD","SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME) AS NUM,'shift'||CHECK_TIME as TIME, COUNT(SERIAL_NUMBER) FROM SAJET.G_WIP_SN WHERE ENABLED='Y' ${if(类型='2'," + "\"AND WORK_TIME IS NULL\"," + "\"AND WORK_TIME ='08' AND WORK_DATE=TO_CHAR(SYSDATE-1,'YYYYMMDD')\"" + ")}" + "AND CHECK_TIME<=${time1} GROUP BY CHECK_TIME) ORDER BY NUM",1,1)",$TIME)image.pngimage.pngimage.png

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

SQL("BU17-OLD","SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME)AS NUM,'shift'||CHECK_TIME as TIME ,COUNT(SERIAL_NUMBER)FROM SAJET.G_WIP_SN WHERE ENABLED='Y'"+ if($类型='2'," AND WORK_TIME IS NULL"," AND WORK_TIME ='08' AND WORK_DATE=TO_CHAR(SYSDATE-1,'YYYYMMDD')")+"AND CHECK_TIME<="+$time1+"GROUP BY CHECK_TIME) ORDER BY NUM",1,1)

========

"Aging WIP-"+IF(LEN($TIME)<1,SQL("BU17-OLD","SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME) AS NUM,'shift'||CHECK_TIME as TIME ,COUNT(SERIAL_NUMBER)FROM SAJET.G_WIP_SN WHERE ENABLED='Y'"+ if($类型='2'," AND WORK_TIME IS NULL"," AND WORK_TIME ='08' AND WORK_DATE=TO_CHAR(SYSDATE-1,'YYYYMMDD')")+"AND CHECK_TIME<="+$time1+"GROUP BY CHECK_TIME) ORDER BY NUM",1,1),$TIME)

  • 帆软用户mVQ2gDxk8Q 帆软用户mVQ2gDxk8Q(提问者) 我刚刚试了下,报表显示还是非法公式
    2023-03-30 08:43 
  • snrtuemc snrtuemc 回复 帆软用户mVQ2gDxk8Q(提问者) 我修改了下,再试试
    2023-03-30 08:44 
  • 帆软用户mVQ2gDxk8Q 帆软用户mVQ2gDxk8Q(提问者) 回复 snrtuemc 我是用这个公式写柱形图的标题,\"Aging WIP-\"+IF(LEN(TIME)<1,\"shift1\",$TIME),用sql()这个公式替换掉shift1,但是我刚刚试了下,显示非法公式
    2023-03-30 08:50 
  • 帆软用户mVQ2gDxk8Q 帆软用户mVQ2gDxk8Q(提问者) 回复 snrtuemc 修改后应该是 \"Aging WIP-\"+IF(LEN(TIME)<1,\"SQL(\"BU17-OLD\",\"SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME)AS NUM,\'shift\'||CHECK_TIME as TIME ,COUNT(SERIAL_NUMBER)FROM SAJET.G_WIP_SN WHERE ENABLED=\'Y\'\"+ if($类型=\'2\',\" AND WORK_TIME IS NULL\",\" AND WORK_TIME =\'08\' AND WORK_DATE=TO_CHAR(SYSDATE-1,\'YYYYMMDD\')\")+\"AND CHECK_TIME<=\"+$time1+\"GROUP BY CHECK_TIME) ORDER BY NUM\",1,1)\",$TIME),但是这个公式报错报非法公式
    2023-03-30 08:52 
  • snrtuemc snrtuemc 回复 帆软用户mVQ2gDxk8Q(提问者) 按你的拷贝出的,按我的修改后的是没有问题的,你的和你原来的不一样啊,你多了引号,参考修改答案
    2023-03-30 09:08 
最佳回答
0
我滴个神啊Lv4见习互助
发布于2023-3-30 08:50(编辑于 2023-3-30 08:54)

SQL("BU17-OLD","SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME) AS NUM,'shift'||CHECK_TIME as TIME, COUNT(SERIAL_NUMBER) FROM SAJET.G_WIP_SN WHERE ENABLED='Y' ${if(类型='2'," + "\"AND WORK_TIME IS NULL\"," + "\"AND WORK_TIME ='08' AND WORK_DATE=TO_CHAR(SYSDATE-1,'YYYYMMDD')\"" + ")}" + " AND CHECK_TIME<=${time1} GROUP BY CHECK_TIME) ORDER BY NUM",1,1)

image.png

  • 帆软用户mVQ2gDxk8Q 帆软用户mVQ2gDxk8Q(提问者) 但是这个公式加进去之后,没有数据,没有结果
    2023-03-30 08:54 
  • 我滴个神啊 我滴个神啊 回复 帆软用户mVQ2gDxk8Q(提问者) 我少加了一个空格,你再试试
    2023-03-30 08:55 
  • 帆软用户mVQ2gDxk8Q 帆软用户mVQ2gDxk8Q(提问者) 回复 我滴个神啊 还是没有出结果
    2023-03-30 08:56 
  • 我滴个神啊 我滴个神啊 回复 帆软用户mVQ2gDxk8Q(提问者) 应该是TO_CHAR(SYSDATE-1,\'YYYYMMDD\')出错了,你检查一下
    2023-03-30 09:00 
  • 我滴个神啊 我滴个神啊 回复 帆软用户mVQ2gDxk8Q(提问者) TO_CHAR(SYSDATE-1,\\\'YYYYMMDD\\\')是用来干嘛的?减一个月还是减一天?
    2023-03-30 09:02 
最佳回答
0
全栈数据Lv6初级互助
发布于2023-3-30 09:07(编辑于 2023-3-30 09:08)

双引号里面的双引号要转义,要写为单引号的。

你需要了解下SQL的动态拼接。

最佳回答
0
YmengLv5中级互助
发布于2023-3-30 10:01

"Aging WIP-"+IF(LEN($TIME)<1,SQL("BU17-OLD","SELECT TIME FROM (SELECT DISTINCT TO_NUMBER(CHECK_TIME) AS NUM,'shift'||CHECK_TIME as TIME, COUNT(SERIAL_NUMBER) FROM SAJET.G_WIP_SN WHERE ENABLED='Y' "+IF($类型='2',"AND WORK_TIME IS NULL","AND WORK_TIME ='08' AND WORK_DATE=TO_CHAR(SYSDATE-1,'YYYYMMDD')")+" AND CHECK_TIME<="+$time1+" GROUP BY CHECK_TIME) ORDER BY NUM",1,1),$TIME)

image.png

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