if参数里面在嵌套一个shift参数,但是一直未找到From关键字、不知道怎么写?

SELECT

POINT_ID,

VEHICLE_TYPE AS EX_VEHICLE_TYPE,

org.SHORTNAME AS orgname,

org.ID,

org.SUPERIOR_ORGAN,

organ.SHORTNAME AS bootname


${if(statisticsType==4," 

,SHIFT_NO

,SUM(PAY_FEE)/100  PAY_FEE_SUM

,COUNT(*)  TRAFFIC_SUM

FROM T_STATION_GREENPASS_WASTE t,

T_COMM_ORGAN org,

T_COMM_ORGAN organ 

WHERE 1=1

AND organ.ID=org.SUPERIOR_ORGAN 

AND t.POINT_ID=org.ID

and (t.SHIFT_NO ='"+shift+"')

and t.EX_TIME >= to_date('"+yearMonthDay+" 00:00:00','yyyy-mm-dd hh24:mi:ss') 

and t.EX_TIME <= to_date('"+yearMonthDay+" 23:59:59','yyyy-mm-dd hh24:mi:ss')

GROUP BY POINT_ID,

VEHICLE_TYPE,

SHIFT_NO,

org.SHORTNAME ,

org.ID,

org.SUPERIOR_ORGAN,

organ.SHORTNAME 

ORDER BY POINT_ID,VEHICLE_TYPE ASC","")}

请问要怎么写 才能让 shift这个参数生效?


FineReport 射手座、 发布于 2020-12-9 10:01
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
0
zsh331Lv8专家互助
发布于2020-12-9 10:07(编辑于 2020-12-9 10:46)

statisticsType==4时,sql语句正常,但如果 statisticsType !=4时,你再看看sql是个什么鬼东西;


怎么调整,你应该懂了吧!!!

========

image.png

=========

image.png

SELECT 				
	POINT_ID,
	VEHICLE_TYPE AS EX_VEHICLE_TYPE,
	org.SHORTNAME AS orgname,
	org.ID,
	org.SUPERIOR_ORGAN,
	organ.SHORTNAME AS bootname
${if(statisticsType==4," 
	,SHIFT_NO
	,SUM(PAY_FEE)/100  PAY_FEE_SUM
	,COUNT(*)  TRAFFIC_SUM
FROM 	T_STATION_GREENPASS_WASTE t,
		T_COMM_ORGAN org,
		T_COMM_ORGAN organ 
WHERE 1=1
AND organ.ID=org.SUPERIOR_ORGAN 
AND t.POINT_ID=org.ID
and t.SHIFT_NO ='"+shift+"'
and t.EX_TIME >= to_date('"+yearMonthDay+" 00:00:00','yyyy-mm-dd hh24:mi:ss') 
and t.EX_TIME <= to_date('"+yearMonthDay+" 23:59:59','yyyy-mm-dd hh24:mi:ss')
GROUP BY	POINT_ID,
		VEHICLE_TYPE,
		SHIFT_NO,
		org.SHORTNAME ,
		org.ID,
		org.SUPERIOR_ORGAN,
		organ.SHORTNAME 
ORDER BY POINT_ID,VEHICLE_TYPE ASC","")}
==========
-- 这是我用上面的参数执行出来的sql脚本,你要是说再不行,我也不知道说什么了= =#
==========
SELECT 
POINT_ID,
VEHICLE_TYPE AS EX_VEHICLE_TYPE,
org.SHORTNAME AS orgname,
org.ID,
org.SUPERIOR_ORGAN,
organ.SHORTNAME AS bootname
 
,SHIFT_NO
,SUM(PAY_FEE)/100  PAY_FEE_SUM
,COUNT(*)  TRAFFIC_SUM
FROM T_STATION_GREENPASS_WASTE t,
T_COMM_ORGAN org,
T_COMM_ORGAN organ 
WHERE 1=1
AND organ.ID=org.SUPERIOR_ORGAN 
AND t.POINT_ID=org.ID
and t.SHIFT_NO ='qqq'
and t.EX_TIME >= to_date('qqq 00:00:00','yyyy-mm-dd hh24:mi:ss') 
and t.EX_TIME <= to_date('qqq 23:59:59','yyyy-mm-dd hh24:mi:ss')
GROUP BYPOINT_ID,
VEHICLE_TYPE,
SHIFT_NO,
org.SHORTNAME ,
org.ID,
org.SUPERIOR_ORGAN,
organ.SHORTNAME 
ORDER BY POINT_ID,VEHICLE_TYPE ASC


  • 射手座、 射手座、(提问者) statisticsType分为1~4,分别写在$if语句里,现在想知道,statisticsType=4的时候,怎么在if语句里面在加入一个参数shift ?,没有加shiftNo这一行SQL都可以执行,加上这个参数就不行了 --按年 ${if(statisticsType==0,\" ,SUM(PAY_FEE)/100 PAY_FEE_SUM ,COUNT(*) TRAFFIC_SUM FROM T_STATION_GREENPASS_WASTE t, T_COMM_ORGAN org, T_COMM_ORGAN organ WHERE 1=1 AND organ.ID=org.SUPERIOR_ORGAN AND t.POINT_ID=org.ID and t.EX_TIME >= to_date(\'\"+year+\"-01-01\"+\"\',\'yyyy-mm-dd\') and t.EX_TIME < add_months(to_date(\'\"+year+\"-01-01\"+\"\',\'yyyy-MM-dd\'),12) GROUP BY POINT_ID, VEHICLE_TYPE, org.SHORTNAME , org.ID, org.SUPERIOR_ORGAN, organ.SHORTNAME ORDER BY POINT_ID,VEHICLE_TYPE ASC\",\"\")} --按月 ${if(statisticsType==1,\" ,SUM(PAY_FEE)/100 PAY_FEE_SUM ,COUNT(*) TRAFFIC_SUM FROM T_STATION_GREENPASS_WASTE t, T_COMM_ORGAN org, T_COMM_ORGAN organ WHERE 1=1 AND organ.ID=org.SUPERIOR_ORGAN AND t.POINT_ID=org.ID and t.EX_TIME >= to_date(\'\"+yearMonth+\"-01\"+\"\',\'yyyy-mm-dd\') and t.EX_TIME < add_months(to_date(\'\"+yearMonth+\"-01\"+\"\',\'yyyy-MM-dd\'),1) GROUP BY POINT_ID, VEHICLE_TYPE, org.SHORTNAME , org.ID, org.SUPERIOR_ORGAN, organ.SHORTNAME ORDER BY POINT_ID,VEHICLE_TYPE ASC\",\"\")}
    2020-12-09 10:10 
  • zsh331 zsh331 回复 射手座、(提问者) 括号去掉
    2020-12-09 10:15 
  • 射手座、 射手座、(提问者) 回复 zsh331 合适了、预览的时候一开始没输入参数值、难怪一直不合适。感谢!
    2020-12-09 11:26 
  • 2关注人数
  • 392浏览人数
  • 最后回答于:2020-12-9 10:46
    请选择关闭问题的原因
    确定 取消
    返回顶部