因此,我查询了一份报告,该报告几乎完全符合我的需要。
代码为我提供了“套件”中的所有物品,告诉我套件中应该有多少物品,并告诉我套件中的物品与应该存在的数量之间的差异。
当套件中的相同产品代码有不同的批号时,即使我按产品代码进行分组,它也会将产品代码拆分为两个行项目。这看起来好像套件中缺少该产品代码的物品,但实际上它们并没有丢失,因为当您将单独的批次放在一起时,您会得到全部数量。
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
结果见附件!谢谢你的帮助 :)