SQLServer 2水晶报表

2020-08-21 12:22发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的老板

我在SQLSERVER中有这些代码

 SELECT ltrim(U_Loader1)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader1)> 0
 全联盟
 SELECT ltrim(U_Loader2)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader2)> 0
 全联盟
 SELECT ltrim(U_Loader3)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader3)> 0
 全联盟
 SELECT ltrim(U_Loader4)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader4)> 0
 按1升序排列
 

代码可以正常工作,如图所示

现在,我想在带有用户定义表的SAP CRYSTAL报表中运行相同的代码

我这样将代码放在TOAD中

第一行显示错误。

如何使这些代码在SAP中可行?

 SELECT ltrim(U_Loader1)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader1)> 0
 全联盟
 SELECT ltrim(U_Loader2)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader2)> 0
 全联盟
 SELECT ltrim(U_Loader3)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader3)> 0
 全联盟
 SELECT ltrim(U_Loader4)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader4)> 0
 按1升序排列

 

(56.0 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的老板

我在SQLSERVER中有这些代码

 SELECT ltrim(U_Loader1)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader1)> 0
 全联盟
 SELECT ltrim(U_Loader2)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader2)> 0
 全联盟
 SELECT ltrim(U_Loader3)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader3)> 0
 全联盟
 SELECT ltrim(U_Loader4)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader4)> 0
 按1升序排列
 

代码可以正常工作,如图所示

现在,我想在带有用户定义表的SAP CRYSTAL报表中运行相同的代码

我这样将代码放在TOAD中

第一行显示错误。

如何使这些代码在SAP中可行?

 SELECT ltrim(U_Loader1)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader1)> 0
 全联盟
 SELECT ltrim(U_Loader2)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader2)> 0
 全联盟
 SELECT ltrim(U_Loader3)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
 哪里LEN(U_Loader3)> 0
 全联盟
 SELECT ltrim(U_Loader4)as man,DocNum,U_Truck,SWW/(IIF(LEN(U_Loader1)= 0,0,1)
 + IIF(LEN(U_Loader2)= 0,0,1)
 + IIF(LEN(U_Loader3)= 0,0,1)
 + IIF(LEN(U_Loader4)= 0,0,1))AS工资
   从table_1
   哪里LEN(U_Loader4)> 0
 按1升序排列

 

(56.0 kB)
付费偷看设置
发送
4条回答
樱桃小丸子0093
1楼 · 2020-08-21 12:32.采纳回答

尊敬的Tariq,

请将LEN更改为LENGTH并更新我,

可能我们可能必须将IIF更改为CASE

Venkat

葫芦娃快救爷爷
2楼-- · 2020-08-21 12:39

是的,很奇怪。

删除ltrim并检查其是否有效

此外,您添加了总和,最后有分组依据

浮生未央
3楼-- · 2020-08-21 12:29

尊敬的先生,

我已经改变了这种情况

 SELECT ltrim(" U_Loader1")as man," DocNum"," U_Truck",
 总和
 当length(" U_Loader1")= 0则0
 当length(" U_Loader2")= 0时0
 当length(" U_Loader3")= 0时,然后0
 当length(" U_Loader4")= 0时0
 ELSE(" U_SOW")/1 END)作为工资
   从ODLN
   LENGTH(" U_Loader1")> 0
 全部联盟
 作为人,选择ltrim(" U_Loader2")," DocNum"," U_Truck",
 总和
 当length(" U_Loader1")= 0则0
 当length(" U_Loader2")= 0时0
 当length(" U_Loader3")= 0时,然后0
 当length(" U_Loader4")= 0时0
 ELSE(" U_SOW")/1 END)作为工资
   从odln
 长度(" U_Loader2")> 0
 全部联盟
 作为人,选择ltrim(" U_Loader3")," DocNum"," U_Truck",
 总和
 当length(" U_Loader1")= 0则0
 当length(" U_Loader2")= 0时0
 当length(" U_Loader3")= 0时,然后0
 当length(" U_Loader4")= 0时0
 ELSE(" U_SOW")/1 END)作为工资
   从odln
 WHERE Length(" U_Loader3")> 0
 全部联盟
 作为人,选择ltrim(" U_Loader4")," DocNum"," U_Truck",
 总和
 当length(" U_Loader1")= 0则0
 当length(" U_Loader2")= 0时0
 当length(" U_Loader3")= 0时,然后0
 当length(" U_Loader4")= 0时0
 ELSE(" U_SOW")/1 END)作为工资
   从odln
   长度(" U_Loader4")> 0
 按1升序排列

 

现在查询中出现此错误消息

CategoryTimestampDurationMessageLinePosition错误3/31/2020 11:53:14 AM0:00:04.122SAP Hana数据库错误:无效的列名:由于GROUP BY子句或聚合函数,选择列表中的'ODLN.U_Loader2'列无效 不包含:第11行第14行(在pos 308)10

渐行渐远_HoldOn
4楼-- · 2020-08-21 12:41

谢谢先生

现在一切正常。

这是我的最终密码


 选择" U_Loader1"作为man,选择max(" DocDate")作为日期," DocNum",
 SUM(CAST(" U_SOW" AS INT))AS WEIGHT,max(" U_Truck")as U_Truck,
 总和
 当ltrim(length(" U_Loader1"))= 0时0
 当ltrim(length(" U_Loader2"))= 0时0
 当ltrim(length(" U_Loader3"))= 0时0
 当ltrim(length(" U_Loader4"))= 0然后是0
 ELSE(" U_SOW")/10 * .8 END)作为工资
   从ODLN
   LENGTH(" U_Loader1")> 0
   和" 2020-03-01"和" 2020-03-15"之间的" DocDate"
   并且" U_Truck" ='BRS-16-272'
   并且" U_itm" = 1 AND" U_DP" ='已分派'
   按" U_Loader1"," DocNum"分组
     全部联盟
 选择" U_Loader2"作为man,选择max(" DocDate")作为日期," DocNum",
 SUM(CAST(" U_SOW" AS INT))AS WEIGHT,max(" U_Truck")as U_Truck,
 总和
 当ltrim(length(" U_Loader1"))= 0时0
 当ltrim(length(" U_Loader2"))= 0时0
 当ltrim(length(" U_Loader3"))= 0时0
 当ltrim(length(" U_Loader4"))= 0然后是0
 ELSE(" U_SOW")/10 * .8 END)作为工资
   从odln
 长度(" U_Loader2")> 0
 和" 2020-03-01"和" 2020-03-15"之间的" DocDate"
 并且" U_Truck" ='BRS-16-272'
 并且" U_itm" = 1 AND" U_DP" ='已分派'
 按" U_Loader2"," DocNum"分组
  全部联盟
 选择" U_Loader3"作为man,选择max(" DocDate")作为日期,选择" DocNum",
 SUM(CAST(" U_SOW" AS INT))AS WEIGHT,max(" U_Truck")as U_Truck,
 总和
 当ltrim(length(" U_Loader1"))= 0时0
 当ltrim(length(" U_Loader2"))= 0时0
 当ltrim(length(" U_Loader3"))= 0时0
 当ltrim(length(" U_Loader4"))= 0然后是0
 ELSE(" U_SOW")/10 * .8 END)作为工资
   从odln
 长度(" U_Loader3")> 0
 和" 2020-03-01"和" 2020-03-15"之间的" DocDate"
 并且" U_Truck" ='BRS-16-272'
 并且" U_itm" = 1 AND" U_DP" ='已分派'
 按" U_Loader3"," DocNum"分组
 全部联盟
 选择" U_Loader4"作为man,选择最大(" DocDate")作为日期," DocNum",
 SUM(CAST(" U_SOW" AS INT))AS WEIGHT,max(" U_Truck")as U_Truck,
 总和
 当ltrim(length(" U_Loader1"))= 0时0
 当ltrim(length(" U_Loader2"))= 0时0
 当ltrim(length(" U_Loader3"))= 0时0
 当ltrim(length(" U_Loader4"))= 0然后是0
 ELSE(" U_SOW")/10 * .8 END)作为工资
   从odln
 长度(" U_Loader4")> 0
 和" 2020-03-01"和" 2020-03-15"之间的" DocDate"
 并且" U_Truck" ='BRS-16-272'
 并且" U_itm" = 1 AND" U_DP" ='已分派'
 按" U_Loader4"," DocNum"分组
 订购" DocNum"
 

一周热门 更多>