来自未经SQL培训的人的SQL查询问题

时间:2018-09-21 19:15:49

标签: sql

我是SQL的新手,我希望有一个简单的问题。目前,如果[批号_]在多个[Bin码]中,则此查询将为[quantity]返回相同的值。我希望此查询求和每个[bin码]的数量,

编辑

该查询似乎汇总了仓库表中的所有条目,并为新表中的所有条目返回相同的数量值。

即当前是否有仓库表;

[Quantity]   [Bin code]  [Lot No_]
    40           A           x
   -35           A           x
    15           B           x
   -15           B           x
    5            C           x
    5            C           x

它给出了下表(当与master $ bin表一起添加时)

[Quantity]   [Bincode]  [Lot No_] [Item No]
-------------------------------------------
 30            A            X         f1
 30            B            X         f2
 30            C            X         f3

希望提供以下内容;

[Quantity]   [Bincode]  [Lot No_] [Item No]
-------------------------------------------
 05            A            X         f1
 15            B            X         f2
 10            C            X         f3

谢谢,这是查询;

ALTER PROCEDURE [dbo].[sp_QV_Lots]
AS
    TRUNCATE TABLE [QV_Lots];

    INSERT INTO [QV lots]
    --select quantity, [Lot No_], [Bin Code], [Item No] from [QV Lots]
        SELECT
            SUM(Warehouse.Quantity) AS Quantity,
            BinContent.[Lot No_],
            BinContent.[Bin Code],
            Bincontent.[Item No_]
        FROM 
            [DB01].[LiveNLic].[dbo].[Master$Bin Content] AS BinContent
        INNER JOIN 
            [DB01].[LiveNLic].dbo.[Warehouse Entry] AS Warehouse ON Warehouse.[Lot No_] = BinContent.[Lot No_]
        WHERE 
            (BinContent.[Location Code] = 'A' OR BinContent.[Location Code] = 'B')
        GROUP BY 
            BinContent.[Lot No_], BinContent.[Bin Code], Bincontent.[Item No_]

1 个答案:

答案 0 :(得分:0)

您的查询和示例结果不兼容(一列有三列,一列有四列)。您的查询不是产生这些结果的原因。

因此,我怀疑您在quantity中还有group by或其他内容。

以下查询应仅计算与每一行关联的数量:

SELECT SUM(w.Quantity) AS Quantity,
       bc.[Lot No_], bc.[Bin Code]
FROM [DB01].[LiveNLic].[dbo].[Master$Bin Content] bc JOIN
     [DB01].[LiveNLic].dbo.[Warehouse Entry] w
     ON w.[Lot No_] = bc.[Lot No_]
WHERE bc.[Location Code] IN ('A', 'B')
GROUP BY bc.[Lot No_], bc.[Bin Code]