在连接三个表并在SQL Server中使用GROUP BY时遇到问题 下面的查询返回每个Material#的许多结果,这是我关心的主要项目分组。
当我运行此查询时,我会为每个值获得多个结果,有时列值相同,有时非常不同 我们的日期只使用日历日期而不是时间戳,所以可能一天内各种表上的许多记录都返回了很多值? 我对此感到有些失落。
查询是根据Access查询构建的,该查询返回几百个结果,而返回4k加,因为每个值重复多次。
每篇文章#和大小应该只有一个结果,但我看到大小重复多次。
我猜这与连接有关,因为删除它们及其相关的选择项,它会恢复正常。
SELECT P.PLANT_CODE,
P.STOCK_CATEGORY,
P.MATERIAL,
P.DISTRIBUTION_VERSION_CODE,
P.PERIOD_CODE,
P.REQUIREMENTS_DATE,
P.PLANNED_QTY AS 'REM PLAN QTY',
P.VERSION_IND_FLAG,
P.SIZE_LITERAL,
P.WITHDRAWN_QUANTITY,
P.PLANNED_QTY + P.WITHDRAWN_QUANTITY AS 'ORIGINAL FCST QTY',
(T.DELIVERY_QUANTITY - T.RECEIVED_QUANTITY) AS 'PO_UNDELIVERED_QTY',
I.ON_HAND_QUANTITY,
I.ON_HAND_QUANTITY - P.PLANNED_QTY AS 'ARTICLE_BALANCE'
FROM VW_PLANNED_REQMNTS_TXT P
VW_INTRANSIT_ITEM T
ON P.MATERIAL = T.MATERIAL
VW_INVENTORY I
ON P.MATERIAL = I.MATERIAL
WHERE I.ON_HAND_QUANTITY - P.PLANNED_QTY <> 0
GROUP BY P.PLANT_CODE,
P.STOCK_CATEGORY,
P.MATERIAL,
P.DISTRIBUTION_VERSION_CODE,
P.PERIOD_CODE,
P.REQUIREMENTS_DATE,
P.PLANNED_QTY,
P.VERSION_IND_FLAG,
P.SIZE_LITERAL,
P.WITHDRAWN_QUANTITY,
P.PLANNED_QTY,
P.TECHNICAL_INDEX,
(T.DELIVERY_QUANTITY - T.RECEIVED_QUANTITY),
I.ON_HAND_QUANTITY,
I.ON_HAND_QUANTITY - P.PLANNED_QTY
HAVING P.PLANT_CODE IN (6040,6041)
AND P.STOCK_CATEGORY IN ('A60385000','A60385003')
AND P.DISTRIBUTION_VERSION_CODE IN (00,01,'ZU','Z2')
AND P.REQUIREMENTS_DATE < GETDATE() - 60
AND P.PLANNED_QTY > 0
ORDER BY P.PLANT_CODE,
P.MATERIAL,
P.REQUIREMENTS_DATE,
P.TECHNICAL_INDEX;