我是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_]
答案 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]