语句查询时传入一个参数type怎么进行判断type=车间执行车间相关语句type=办公楼执行

在FineReport中查询

1、语句查询时传入一个参数 type 怎么进行判断 type=车间执行车间相关语句 type=办公楼执行办公楼的语句

2、如果参数不等与 车间或办公楼执行 另外一个语句

SELECT '车间楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='${Year_Month_Date}'+' '+RIGHT('0' +'${Hour}',2)AND Rd_Code IN ('AKA242010019')

---------

SELECT '办公楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='${Year_Month_Date}'+' '+RIGHT('0' +'${Hour}',2)AND Rd_Code IN ('AKX242010062')

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

 ${if(len(type) == 0,"","")}   这种方法不行 因为 "" 这个里面有 其他日期参数

image.png

SQL SSVIP 发布于 2024-11-5 11:24 (编辑于 2024-11-5 11:30)
1min目标场景问卷 立即参与
回答问题
悬赏:3 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共5回答
最佳回答
1
用户k6280494Lv6资深互助
发布于2024-11-5 11:26(编辑于 2024-11-5 11:28)

${if(type='车间执行',sql1,if(type='办公楼',sq2,sq3))}

${if(type='车间执行',"SELECT '车间楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'+' '+RIGHT('0' +'"+Hour+"',2) AND Rd_Code IN ('AKA242010019')",if(type='办公楼',"SELECT '办公楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'+' '+RIGHT('0' +'"+Hour+"',2) AND Rd_Code IN ('AKX242010062')",""))}

最佳回答
1
snrtuemcLv8专家互助
发布于2024-11-5 11:25(编辑于 2024-11-5 11:29)

${if(type="车间执行","车间执行SQL",if(type="办公楼执行","办公楼执行SQL","其他SQL"))}

=========

${if(type="车间执行","SELECT '车间楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'"+' '+"RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKA242010019')",if(type="办公楼执行","SELECT '办公楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'"+' '+"RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKX242010062')","其他SQL"))}

  • SSVIP SSVIP(提问者) 报错了,com. fr. general. data. TableDataException:错误代码:11300001 数据集配错误关键字'RIGET附近有语法错误。
    2024-11-05 11:32 
  • snrtuemc snrtuemc 回复 SSVIP(提问者) 那试试,${if(type="车间执行","SELECT '车间楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'"+' '+RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKA242010019')",if(type="办公楼执行","SELECT '办公楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'"+' '+RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKX242010062')","其他SQL"))}
    2024-11-05 11:42 
  • SSVIP SSVIP(提问者) 回复 snrtuemc 不行
    2024-11-05 12:35 
最佳回答
1
Z4u3z1Lv6专家互助
发布于2024-11-5 11:25(编辑于 2024-11-5 11:28)

${if(type="车间","sql1",type="办公楼","sq2","sq3")}

----------

${if(type="车间","SELECT '车间楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'+' '+RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKA242010019')",type="办公楼","SELECT '办公楼' AS '名称',ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='"+Year_Month_Date+"'+' '+RIGHT('0' +'"+Hour+"',2)AND Rd_Code IN ('AKX242010062')","sq3")}

  • SSVIP SSVIP(提问者) type="车间"的时候可以,type="办公楼"的时候 报错了 ;com. fr.general. data.TableDataException:错误代码:11300001 数据集配置错误找不到存储 过程'true”
    2024-11-05 11:36 
最佳回答
0
CD20160914Lv8专家互助
发布于2024-11-5 11:26

${if(type="车间","select * from 表名称","另外的查询语句")}

最佳回答
0
青春只因年少Lv6中级互助
发布于2024-11-5 11:31

 '车间楼' AS '名称' 主要就是这个赋值不一样,使用case when 条件语句

参数 type 怎么进行判断 type=车间执行车间相关语句 type=办公楼执行办公楼

SELECT 

case when type='车间执行'  then '车间'

        when  type='办公楼执行'     then '办公楼'

END as '名称'

,ISNULL(SUM(Rd_Data),0) AS '能耗' FROM EQ_RealTimeCodeHourData WHERE CONVERT(varchar(13), Rd_LTime, 120) ='${Year_Month_Date}'+' '+RIGHT('0' +'${Hour}',2)AND Rd_Code IN ('AKA242010019')

  • 5关注人数
  • 144浏览人数
  • 最后回答于:2024-11-5 11:31
    请选择关闭问题的原因
    确定 取消
    返回顶部