Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server Can';I don’我不会像我希望的那样将重复的项目分组_Sql Server_Tsql_Sql Server 2005 - Fatal编程技术网

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