记录结果重复

2020-09-13 11:33发布

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

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


专家们,我以为这是我必须要解决的问题,但是它再次抬起头来。

我有一个简单的查询,该查询以前可以正常工作,但是我决定我们需要查看成本计算,然后将联接添加到另一个表中(在 BOLD 中,但可以使用),但是从现在开始, 会收到某些项目的双精度,三重甚至四重,我不知道为什么-对于我要去哪里的任何帮助将不胜感激:
SELECT DISTINCT T2。[DocNum] AS'Document Number'

,T2。[CountDate]作为"计数日期"

,T1。[ItemCode] AS'项目代码'

,T1。[ItemDesc] AS'项目描述'

,T1。[WhsCode] AS"仓库代码"

,T0。[BinCode] AS'Bin位置代码'

,T1。[InWhsQty]为"计数日期的内部数量"

,T1。[CountQty]个"计数数量"

,T1。[Difference] AS'Difference'

,T3。价格

,T1。[Remark] AS'Remarks'

来自[dbo]。[OBIN] T0

内部联接[dbo]。[INC1] T1在T1上。[BinEntry] = T0。[AbsEntry]

内部联接[dbo]。[OINC] T2在T2上。[DocEntry] = T1。[DocEntry]

INNER JOIN IQR1 T3 ON T3.ItemCode = T1.ItemCode

[%0]和[%1]和T1.WhsCode IN(N'[%2]',N'[%3]')之间的T2.CountDate

按T1.ItemCode,T2。[DocNum],T2。[CountDate],T1。[ItemDesc],T1。[WhsCode],T0。[BinCode],T1。[InWhsQty],T1。[CountQty]分组 ,T1。[Difference],T3.Price,T1。[Remark]

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

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


专家们,我以为这是我必须要解决的问题,但是它再次抬起头来。

我有一个简单的查询,该查询以前可以正常工作,但是我决定我们需要查看成本计算,然后将联接添加到另一个表中(在 BOLD 中,但可以使用),但是从现在开始, 会收到某些项目的双精度,三重甚至四重,我不知道为什么-对于我要去哪里的任何帮助将不胜感激:
SELECT DISTINCT T2。[DocNum] AS'Document Number'

,T2。[CountDate]作为"计数日期"

,T1。[ItemCode] AS'项目代码'

,T1。[ItemDesc] AS'项目描述'

,T1。[WhsCode] AS"仓库代码"

,T0。[BinCode] AS'Bin位置代码'

,T1。[InWhsQty]为"计数日期的内部数量"

,T1。[CountQty]个"计数数量"

,T1。[Difference] AS'Difference'

,T3。价格

,T1。[Remark] AS'Remarks'

来自[dbo]。[OBIN] T0

内部联接[dbo]。[INC1] T1在T1上。[BinEntry] = T0。[AbsEntry]

内部联接[dbo]。[OINC] T2在T2上。[DocEntry] = T1。[DocEntry]

INNER JOIN IQR1 T3 ON T3.ItemCode = T1.ItemCode

[%0]和[%1]和T1.WhsCode IN(N'[%2]',N'[%3]')之间的T2.CountDate

按T1.ItemCode,T2。[DocNum],T2。[CountDate],T1。[ItemDesc],T1。[WhsCode],T0。[BinCode],T1。[InWhsQty],T1。[CountQty]分组 ,T1。[Difference],T3.Price,T1。[Remark]

付费偷看设置
发送
2条回答
灬番茄
1楼 · 2020-09-13 12:22.采纳回答

嗨罗伊,

添加联接时,将根据此表拆分结果。 假设您有一个代码为T1的商品。

当您从OITM查询数据时,您只会得到一行,因为只有一项的ItemCode ='T1'。

 SELECT ItemCode,
     项目名称
 从OITM
 WHERE ItemCode ='T1'

现在,您已将内部联接添加到具有股票发布详细信息的查询中:

 SELECT OITM.ItemCode,
     OITM.ItemName,
     IQR1。价格
 从OITM
 内连接IQR1 ON IQR1.ItemCode = OITM.ItemCode
 WHERE ItemCode ='T1'
 

在此查询中,您可以获得0行(以防在股票过帐中不使用该项目。这是因为您使用内部联接,如果您仍然希望以空价格获得该行,请使用左联接) ,1行(如果您的商品仅在库存过帐中使用一次)和多行。 行数将是您在库存过帐凭证中项目外观的数量。 您的情况也一样。 您已经在查询中使用GROUP BY子句,因此,如果您不希望通过过帐拆分结果,则可以通过汇总函数(MIN,MAX,SUM,COUNT等)获得价格

 SELECT DISTINCT T2。[DocNum] AS"文档编号"
 ,T2。[CountDate] AS"计数日期"
 ,T1。[ItemCode] AS'项目代码'
 ,T1。[ItemDesc] AS'项目说明'
 ,T1。[WhsCode] AS"仓库代码"
 ,T0。[BinCode] AS"装箱位置代码"
 ,T1。[InWhsQty] AS"计数日期内的数量"
 ,T1。[CountQty] AS"计算数量"
 ,T1。[差异] AS"差异"
 ,MAX(T3.Price)AS'价格'-从该商品的库存过账中获取最高价格
 ,T1。[备注] AS"备注"
 来自[dbo]。[OBIN] T0
 内连接[dbo]。[INC1] T1在T1上。[BinEntry] = T0。[AbsEntry]
 内部联接[dbo]。[OINC] T2在T2上。[DocEntry] = T1。[DocEntry]
 内联接IQR1 T3开启T3.ItemCode = T1.ItemCode
 [%0]与[%1]与T1.WhsCode IN之间的T2.CountDate(N'[%2]',N'[%3]')
 GROUP BY T1.ItemCode,T2。[DocNum],T2。[CountDate],T1。[ItemDesc],T1。[WhsCode],T0。[BinCode],T1。[InWhsQty],T1。[CountQty],T1。  [差异],T1。[备注]
 

在此查询中,我从GROUP BY子句中删除了T3.Price,因为我们不再按该字段分组,因此我们对其进行汇总。 我还为您的T3.Price选择添加了MAX函数。 希望我能清楚地解释它。

野沐沐
2楼-- · 2020-09-13 12:02

谢尔盖,非常感谢您的出色详尽答复-我现在明白了:)

致谢

罗伊

一周热门 更多>