2012-11-27 58 views
0

所以我有一個報告的查詢,幾乎正是我所需要的。無法獲取重複的項目,因爲我希望他們

該代碼爲我提供了一個「工具包」中的所有項目,告訴我這些工具包中應該包含多少項目,並給出了工具包中項目與假定數量之間的差異到那裏。

當套件中的同一產品代碼有不同的批號時,即使我正在按產品代碼進行分組,也會將產品代碼分成兩個訂單項。這使得它看起來好像該產品代碼中的套件缺少項目,但實際上它們並不缺失,因爲當您將單獨的批次放在一起時,您將獲得完整數量。

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 

查看附件的結果!感謝您的任何幫助:) result

回答

1

我認爲你是由太多的列分組 - 你不應該由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 
+0

工作 - 謝謝! – mrDave

相關問題