查询销售报价

2020-09-07 02:50发布

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

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


大家好,

我希望编写查询,但遇到了一些困难。

我希望查询显示特定销售中所有未结清的 S 销售报价 员工包括报价中的数据;

在尝试按CardName对它们进行分组时,我一直收到sql错误,因此不会造成混乱。

并且帮助会很棒,我的代码如下:

 DECLARE @SlpName nvarchar(50)
 SET @SlpName ='此处为用户名'


 选择T0。[DocDate],
 T0。[DocNum],
 T1。[SlpName],
 T0。[CardName],
 T0。[NumAtCard],
 T2。[ItemCode],
 T2。[说明],
 T2。[数量],
 T2。[LineTotal],
 T2。[LineStatus]


 从OQUT T0
 内联接QUT1 T2接通T0.DocEntry = T2.DocEntry
 内连接OSLP T1开启T0.SlpCode = T1.SlpCode


 T0。[DocStatus] ='O'
 AND(T1.SlpName = @SlpName或@SlpName ='')




 按T0.DocNum分组
 按T0.CardName排序




 浏览


 

非常感谢!

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

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


大家好,

我希望编写查询,但遇到了一些困难。

我希望查询显示特定销售中所有未结清的 S 销售报价 员工包括报价中的数据;

在尝试按CardName对它们进行分组时,我一直收到sql错误,因此不会造成混乱。

并且帮助会很棒,我的代码如下:

 DECLARE @SlpName nvarchar(50)
 SET @SlpName ='此处为用户名'


 选择T0。[DocDate],
 T0。[DocNum],
 T1。[SlpName],
 T0。[CardName],
 T0。[NumAtCard],
 T2。[ItemCode],
 T2。[说明],
 T2。[数量],
 T2。[LineTotal],
 T2。[LineStatus]


 从OQUT T0
 内联接QUT1 T2接通T0.DocEntry = T2.DocEntry
 内连接OSLP T1开启T0.SlpCode = T1.SlpCode


 T0。[DocStatus] ='O'
 AND(T1.SlpName = @SlpName或@SlpName ='')




 按T0.DocNum分组
 按T0.CardName排序




 浏览


 

非常感谢!

付费偷看设置
发送
3条回答
lukcy2020
1楼-- · 2020-09-07 03:24

嗨,

尝试在数量和总行数列中使用聚合函数。 尝试以下查询

 DECLARE @SlpName nvarchar(50)
 SET @SlpName ='此处为用户名'

 选择T0。[DocDate],
 T0。[DocNum],T1。[SlpName],T0。[CardName],
 T0。[NumAtCard],T2。[ItemCode],T2。[Dscription],
 以SUM(T2。[Quantity])作为数量,以SUM(T2。[LineTotal])作为总数,T2。[LineStatus]

 从OQUT T0
 内联接QUT1 T2接通T0.DocEntry = T2.DocEntry
 内连接OSLP T1开启T0.SlpCode = T1.SlpCode

 T0。[DocStatus] ='O'
 AND(T1.SlpName = @SlpName或@SlpName ='')

 GROUP BY T0。[DocDate],
 T0。[DocNum],T1。[SlpName],T0。[CardName],
 T0。[NumAtCard],T2。[ItemCode],T2。[Dscription],T2。[LineStatus]
 按T0.CardName排序

 浏览
闻人可可
2楼-- · 2020-09-07 03:28

您好,很粗心,是的,确实可以,谢谢您的答复,但是在所附的图像中,您可以看到有多个相同的文档编号和客户。

有什么方法可以让客户仅排成一行(每个客户),而不是每个报价都有多个。

欢呼

利亚姆

愤怒的猪头君
3楼-- · 2020-09-07 03:31

嗨,

在您选择的列中可能存在一些不唯一的原因,这就是重复列的原因。 也许您可以尝试一下东东功能。 在下面的查询中,我假设" Dscription"列不是唯一的。

 DECLARE @SlpName nvarchar(50)
 SET @SlpName ='此处为用户名'

 选择T0。[DocDate],
 T0。[DocNum],T1。[SlpName],T0。[CardName],
 T0。[NumAtCard],T2。[ItemCode],T2。[Dscription],
 以SUM(T2。[Quantity])作为数量,以SUM(T2。[LineTotal])作为总数,T2。[LineStatus]
 INTO#Temp1
 从OQUT T0
 内联接QUT1 T2接通T0.DocEntry = T2.DocEntry
 内连接OSLP T1开启T0.SlpCode = T1.SlpCode

 T0。[DocStatus] ='O'
 AND(T1.SlpName = @SlpName或@SlpName ='')

 GROUP BY T0。[DocDate],
 T0。[DocNum],T1。[SlpName],T0。[CardName],
 T0。[NumAtCard],T2。[ItemCode],T2。[Dscription],T2。[LineStatus]
 按T0.CardName排序

 选择一个。* ,
 东西(
 (选择','+ A1.Dscription
           从#Temp1 A1
           其中A1.CardName = A.CardName和A1.DocNum = A.DocNum
           按A1订购。说明ASC
           FOR XML PATH(''),TYPE).value('。','NVARCHAR(MAX)'),1,1,'')AS [TESTCOLUMN]
 INTO#Temp2
 来自#Temp1 A
 从#Temp2 A中选择A. *
 删除表#Temp1
 删除表#Temp2 

这些东西的目的是将所有说明合并为一列,并使用相同的卡名和文档编号,并用逗号分隔。

一周热门 更多>