获取销售报价单编号以销售订单查询+订单行

2020-08-14 03:43发布

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

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


大家好,

这是一个分为两部分的问题。 上半年可能确实很简单,但我看不出为什么它不起作用(它从报价到销售订单有效,反之则不行)。 我还需要显示链接销售报价的T5.DocDate,但我无法显示它。

 SELECT DISTINCT T0.DocNum,T0。[CardCode],T0。[CardName],T1.FirstName,T1.LastName,T0.Address2,T1.Tel1,T1.Cellolar,T1.E_MailL,T2.SlpName,T5  .DocDate
  从ORDR T0
 内联接OCPR T1到T0。[CntctCode] = T1。[CntctCode]
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 内联接RDR1 T3在T3.DocEntry = T0.DocEntry
 左联接QUT1 T4在T4.BaseEntry = T3.DocEntry和T4.BaseLine = T3.LineNum
 左联接OQUT T5开启T5.DocEntry = T4.DocEntry
 T0.series ='73'和T0.DocStatus ='O'

第二部分要复杂一些,我不知道是否可以完成。 我需要在Crystal报表的每个明细行中显示销售订单中的所有行项目(商品代码和数量)。 下面的例子

一如既往,我们将不胜感激。

info.jpg (46.0 kB)

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

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


大家好,

这是一个分为两部分的问题。 上半年可能确实很简单,但我看不出为什么它不起作用(它从报价到销售订单有效,反之则不行)。 我还需要显示链接销售报价的T5.DocDate,但我无法显示它。

 SELECT DISTINCT T0.DocNum,T0。[CardCode],T0。[CardName],T1.FirstName,T1.LastName,T0.Address2,T1.Tel1,T1.Cellolar,T1.E_MailL,T2.SlpName,T5  .DocDate
  从ORDR T0
 内联接OCPR T1到T0。[CntctCode] = T1。[CntctCode]
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 内联接RDR1 T3在T3.DocEntry = T0.DocEntry
 左联接QUT1 T4在T4.BaseEntry = T3.DocEntry和T4.BaseLine = T3.LineNum
 左联接OQUT T5开启T5.DocEntry = T4.DocEntry
 T0.series ='73'和T0.DocStatus ='O'

第二部分要复杂一些,我不知道是否可以完成。 我需要在Crystal报表的每个明细行中显示销售订单中的所有行项目(商品代码和数量)。 下面的例子

一如既往,我们将不胜感激。

info.jpg (46.0 kB)
付费偷看设置
发送
2条回答
暮风yp
1楼-- · 2020-08-14 04:26

嗨,尼克,

第1部分:我认为联接可能需要走另一条路:

左外部联接QUT1 T4上T3.BaseEntry = T4.DocEntry并且 T3.BaseLine = T4.LineNum 

第2部分:可以完成,但有些复杂,而且易变。 如果说有25个项目行,您希望报告看起来如何? 无论如何,通常来说,您可以使用游标动态构建查询字符串:

 DECLARE @ItemCode NVARCHAR(30)
 声明@Quantum NUMERIC(19,6)
 DECLARE @QUERY AS NVARCHAR(MAX)='选择[全部],[该],[其他],[列],'
 DECRSARE CRSR游标
 对于选择r.ItemCode,r.Quantity
     来自[dbo] .RDR1 r
     等等
 打开crsr
 从crsr获取下一个
 INTO @ ItemCode,@ Quantity
 @@ FETCH_STATUS = 0时
  开始
 /***一次建立组合栏,如下所示:***/
   SET @QUERY = @QUERY + CAST(CAST(@Quantity AS INT)AS NVARCHAR)+'x'+ @ItemCode +','
   从crsr获取下一个
   INTO @ ItemCode,@ Quantity
  结束
 关闭crsr
 取消crsr
 设置@QUERY = @QUERY +
 '从订单h
        内连接RDR1 r ON h.DocEntry = r.DocEntry
   等。
 执行(@QUERY)
 

,然后将使用EXEC('使用光标构建的查询进入此处')函数执行。

注意

Johan

callcenter油条
2楼-- · 2020-08-14 04:32

嗨,尼克,

回想起来,我完全想得太彻底了,实际上,它甚至没有返回正确的结果。 回到绘图板上,简化整个过程之后,请尝试以下操作:

选择T0.DocNum,T0。[CardCode],T0。[CardName]
 ,T1.FirstName
 ,T1.LastName
 ,T0.Address2,T1.Tel1,T1.Cellolar,T1.E_MailL,T2.SlpName,T9.DocDate
 ,stuff((选择','+ cast(cast(r.Quantity as int)as nvarchar)+'x'+ r.ItemCode
   来自RDR1 r
   其中r.DocEntry = T0.DocEntry
     AND r.LineStatus ='O'FOR XML PATH('')),1,2,'')AS [项目顺序]
 从ORDR T0
 内联接OCPR T1到T0。[CntctCode] = T1。[CntctCode]
 内连接OSLP T2开启T0.SlpCode = T2.SlpCode
 内联接RDR1 T3在T3.DocEntry = T0.DocEntry
 左外部联接QUT1 T8在T3.BaseEntry = T8.DocEntry和T3.BaseLine = T8.LineNum
 在T9.DocEntry = T8.DocEntry上左联接OQUT T9
 T0.series ='73'和T0.DocStatus ='O'
 GROUP BY T0.DocEntry,T0.DocNum,T0。[CardCode],T0。[CardName]
 ,T1.FirstName
 ,T1.LastName
 ,T0.Address2,T1.Tel1,T1.Cellolar,T1.E_MailL,T2.SlpName,T9.DocDate 

此致

Johan

一周热门 更多>