Sql server Can';I don’我不会像我希望的那样将重复的项目分组
因此,我对一份报告提出了一个疑问,这份报告几乎正是我所需要的 代码给出了“工具包”中的所有项目,告诉我工具包中应该有多少项目,并给出了工具包中的项目和应该有多少项目之间的差异 当套件中的同一产品代码有不同批号时,它会将产品代码拆分为两行项目,即使我按产品代码分组。这使它看起来好像有项目从该产品代码的工具包中丢失,但实际上它们并没有丢失,因为当你把单独的批次放在一起时,你就得到了完整的数量Sql server Can';I don’我不会像我希望的那样将重复的项目分组,sql-server,tsql,sql-server-2005,Sql Server,Tsql,Sql Server 2005,因此,我对一份报告提出了一个疑问,这份报告几乎正是我所需要的 代码给出了“工具包”中的所有项目,告诉我工具包中应该有多少项目,并给出了工具包中的项目和应该有多少项目之间的差异 当套件中的同一产品代码有不同批号时,它会将产品代码拆分为两行项目,即使我按产品代码分组。这使它看起来好像有项目从该产品代码的工具包中丢失,但实际上它们并没有丢失,因为当你把单独的批次放在一起时,你就得到了完整的数量 SELECT plItem.ProductCode, plItem.[Description]
SELECT plItem.ProductCode,
plItem.[Description],
sum(ISNULL(ProductContent.Qty, 0)) AS KitQty,
ISNULL(KitBomItems.Qty, 0) AS BOMQty,
sum(ISNULL(ProductContent.Qty, 0)) - ISNULL(KitBomItems.Qty, 0) AS Diff
FROM KitBomItems
JOIN ProductList AS plItem
ON KitBomItems.ProductListID = plItem.ID
AND KitBomItems.KitBomListID = @AssemblyID
LEFT JOIN ProductContent
ON ProductContent.ProductCode = plItem.ProductCode
AND ProductContent.StatusID = @KitID
GROUP BY plItem.ProductCode,
plItem.[Description],
ProductContent.Qty,
KitBomItems.Qty
结果见附件!谢谢您的帮助:)我认为您按太多的列进行分组-您不应该按
ProductContent.Qty
进行分组。试试这个
SELECT
plItem.ProductCode,
plItem.[Description],
sum(ISNULL(ProductContent.Qty,0)) AS KitQty,
ISNULL(KitBomItems.Qty,0) as BOMQty,
sum(ISNULL(ProductContent.Qty,0)) - ISNULL(KitBomItems.Qty,0) AS Diff
FROM KitBomItems
JOIN ProductList AS plItem ON KitBomItems.ProductListID = plItem.ID
AND KitBomItems.KitBomListID = @AssemblyID
LEFT JOIN ProductContent ON ProductContent.ProductCode = plItem.ProductCode
AND ProductContent.StatusID = @KitID
group by
plItem.ProductCode,
plItem.[Description],
KitBomItems.Qty