在此查询中插入CASE函数?

2020-09-30 07:27发布

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

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


大家好,

我的查询中需要做些改动。

我需要为此代码创建一个名为@myvalue的参数,并且对于某些项目组,@myvalue应该等于OITM.U_stockprice。(对于OMRC.firmcode = 48,则@myvalue = OITM.U_stockprice)对于其他项目组,@ myvalue是 wtr1.quantity本身。如何在followijng查询中使用CASE函数?

选择t0.LocCode,t1.Panno,t1.ceregno,t1.range,t1.CstNo,t1.CeDivision,t1.CeComRate,t3.SeriesName,t3.Series,
 t1.tinno,t1.eccno,t1.LstVatNo,t2.DocNum,t2.Series,t2.DocDate,t1.Location,t2.Filler,t2.U_Destinat,t0.StockPrice,t0.LineTotal,t2.DocTotal,t0。 描述,t0.Quantity,t0.Quantity * t0.StockPrice [Value],t6.U_StockTransfer,


 t5.location [来自位置],
 T5.Building [FROM BUILDING],
 t5。街道(从街道),
 t5.Block [from block],
 t5。城市[来自城市],
 t5.ZipCode [来自zip],
 t5.TinNo [来自锡],
 t5.CstNo [来自cst],


 t1.location [到位置],
 t1.Building [TO BUILDING],
 t1.Street [TO street],
 t1.Block [TO block],
 t1。城市[TO城市],
 t1.ZipCode [TO zip],
 t1.TinNo [TO tin],
 t1.Cstno [To Cst],




 (从a中选择a.whs名称,其中t2.filler = a.WhsCode)[wFrom whs],
 (从a中选择a.Street,其中t2.filler = a.WhsCode)[wFrom street],
 (从ah中选择a.StreetNo,其中t2.filler = a.WhsCode)[wFrom streetno。],
 (从a中选择a.Block,其中t2.filler = a.WhsCode)[wFromblock],
 (从a.h中选择a.Building,其中t2.filler = a.WhsCode)[wFrom建筑],
 (从a中选择a.ZipCode,其中t2.filler = a.WhsCode)[wFromzipcode],
 (从ah中选择a.city,其中t2.filler = a.WhsCode)[wFrom city],
 (从a中选择a。县,其中t2.filler = a.WhsCode)[wFrom县],


 (从a中选择a.whs名称,其中t0.WhsCode = a.WhsCode)[wTo whs],
 (从a中选择a.Street,其中t0.WhsCode = a.WhsCode)[wTo street],
 (从a中选择a.StreetNo,其中t0.WhsCode = a.WhsCode)[wTo streetno],
 (从a中选择a.Block,其中t0.WhsCode = a.WhsCode)[wTo块],
 (从a中选择a.Building,其中t0.WhsCode = a.WhsCode)[wTo建筑物],
 (从a中选择a.ZipCode,其中t0.WhsCode = a.WhsCode)[wTozipcode],
 (从a中选择a.City,其中t0.WhsCode = a.WhsCode)[wTocity],
 (从a中选择a.County,其中t0.WhsCode = a.WhsCode)[wTocounty]




 从WTR1 t0




 在t0.LocCode = t1.Code上左联接OLCT t1
 在t0.DocEntry = t2.DocEntry上左加入OWTR t2
 t2.Series上的内部联接NNM1 t3 = t3.Series
 t2.Filler = t4.WhsCode上的内部联接OWHS t4
 左联接OLCT t5 ON t4.Location = T5.Code
 在t0.ItemCode = t6.ItemCode上进行内部联接OITM t6
 t6.FirmCode = t7.FirmCode上的内部联接OMRC t7






 其中t2.docentry ='{?DocKey @}'


 

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

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


大家好,

我的查询中需要做些改动。

我需要为此代码创建一个名为@myvalue的参数,并且对于某些项目组,@myvalue应该等于OITM.U_stockprice。(对于OMRC.firmcode = 48,则@myvalue = OITM.U_stockprice)对于其他项目组,@ myvalue是 wtr1.quantity本身。如何在followijng查询中使用CASE函数?

选择t0.LocCode,t1.Panno,t1.ceregno,t1.range,t1.CstNo,t1.CeDivision,t1.CeComRate,t3.SeriesName,t3.Series,
 t1.tinno,t1.eccno,t1.LstVatNo,t2.DocNum,t2.Series,t2.DocDate,t1.Location,t2.Filler,t2.U_Destinat,t0.StockPrice,t0.LineTotal,t2.DocTotal,t0。 描述,t0.Quantity,t0.Quantity * t0.StockPrice [Value],t6.U_StockTransfer,


 t5.location [来自位置],
 T5.Building [FROM BUILDING],
 t5。街道(从街道),
 t5.Block [from block],
 t5。城市[来自城市],
 t5.ZipCode [来自zip],
 t5.TinNo [来自锡],
 t5.CstNo [来自cst],


 t1.location [到位置],
 t1.Building [TO BUILDING],
 t1.Street [TO street],
 t1.Block [TO block],
 t1。城市[TO城市],
 t1.ZipCode [TO zip],
 t1.TinNo [TO tin],
 t1.Cstno [To Cst],




 (从a中选择a.whs名称,其中t2.filler = a.WhsCode)[wFrom whs],
 (从a中选择a.Street,其中t2.filler = a.WhsCode)[wFrom street],
 (从ah中选择a.StreetNo,其中t2.filler = a.WhsCode)[wFrom streetno。],
 (从a中选择a.Block,其中t2.filler = a.WhsCode)[wFromblock],
 (从a.h中选择a.Building,其中t2.filler = a.WhsCode)[wFrom建筑],
 (从a中选择a.ZipCode,其中t2.filler = a.WhsCode)[wFromzipcode],
 (从ah中选择a.city,其中t2.filler = a.WhsCode)[wFrom city],
 (从a中选择a。县,其中t2.filler = a.WhsCode)[wFrom县],


 (从a中选择a.whs名称,其中t0.WhsCode = a.WhsCode)[wTo whs],
 (从a中选择a.Street,其中t0.WhsCode = a.WhsCode)[wTo street],
 (从a中选择a.StreetNo,其中t0.WhsCode = a.WhsCode)[wTo streetno],
 (从a中选择a.Block,其中t0.WhsCode = a.WhsCode)[wTo块],
 (从a中选择a.Building,其中t0.WhsCode = a.WhsCode)[wTo建筑物],
 (从a中选择a.ZipCode,其中t0.WhsCode = a.WhsCode)[wTozipcode],
 (从a中选择a.City,其中t0.WhsCode = a.WhsCode)[wTocity],
 (从a中选择a.County,其中t0.WhsCode = a.WhsCode)[wTocounty]




 从WTR1 t0




 在t0.LocCode = t1.Code上左联接OLCT t1
 在t0.DocEntry = t2.DocEntry上左加入OWTR t2
 t2.Series上的内部联接NNM1 t3 = t3.Series
 t2.Filler = t4.WhsCode上的内部联接OWHS t4
 左联接OLCT t5 ON t4.Location = T5.Code
 在t0.ItemCode = t6.ItemCode上进行内部联接OITM t6
 t6.FirmCode = t7.FirmCode上的内部联接OMRC t7






 其中t2.docentry ='{?DocKey @}'


 
付费偷看设置
发送
5条回答
梦想连接
1楼 · 2020-09-30 08:00.采纳回答
 将@myvalue声明为float
 SELECT @myvalue =大小写
                    当t7.firmcode = 48然后t6.U_stockprice
                    ELSE wtr1.quantity
                   结束
 从WTR1 t0
 在t0.LocCode = t1.Code上左联接OLCT t1
 在t0.DocEntry = t2.DocEntry上左加入OWTR t2
 t2.Series上的内部联接NNM1 t3 = t3.Series
 t2.Filler = t4.WhsCode上的内部联接OWHS t4
 左联接OLCT t5 ON t4.Location = T5.Code
 在t0.ItemCode = t6.ItemCode上进行内部联接OITM t6
 t6.FirmCode = t7.FirmCode上的内部联接OMRC t7
 其中t2.docentry ='{?DocKey @}'
 
hengyuye
2楼-- · 2020-09-30 08:20

Johan,

是的,我需要out作为@myvalue参数(可以在Crystal报表中轻松使用。),即条件应如下所示:

IF t7.firmcode = 48

THEN @myvalue = t6.U_stockprice

ELSE @myvalue = wtr1.quantity



以便我可以将@myvalue作为单个字段拖入Crystal报表中。

南山jay
3楼-- · 2020-09-30 08:17

嗨,

确定要使用@myvalue参数吗?

在任何使用此价格的地方,您都可以重复相同的CASE语句:

 CASE
  当t7.firmcode = 48然后t6.U_stockprice
  ELSE wtr1.quantity
 END 

问候,

Johan

Alawn_Xu
4楼-- · 2020-09-30 08:22

Johan

请不要在SQL中提供完整的代码。

huskylover
5楼-- · 2020-09-30 08:21

好的,语法几乎相同:

 SELECT @myvalue = CASE
                    当t7.firmcode = 48然后t6.U_stockprice
                    ELSE wtr1.quantity
                   结束
 从/*等,等等*/
  

此致

Johan

一周热门 更多>