簡體   English   中英

在SQL ACCESS中對兩個不同的表列求和

[英]SUM two different tables columns in SQL ACCESS

試圖弄清楚如何使此JOIN正常工作。 在這里坐了大約30分鍾。 有人可以幫我嗎? 我正在嘗試從另一種形式中減去一種形式,以查看發票數量和庫存量之間的差異。

SELECT Invoice.NameOfItem, SUM(Inventory.Volume - Invoice.Quantity) As TotalNeeded
FROM Invoice
INNER JOIN Inventory
ON Invoice.NameOfItem=Inventory.NameOfItem
GROUP BY Invoice.NameOfItem;

問題是輸出不正確。

 SELECT NameOfItem, SUM(Quantity) AS TotalNumberNeeded From Invoice GROUP BY NameOfItem

從中減去

 SELECT NameOfItem, SUM(Volume) AS TotalNumberNeeded From Inventory GROUP BY NameOfItem

是= -112。 當前輸出為“ 992”

我認為您需要給表格起一個別名

  SELECT a.NameOfItem, SUM(b.Volume - a.Quantity) As TotalNeeded
FROM Invoice a
INNER JOIN Inventory b
ON a.NameOfItem=b.NameOfItem
GROUP BY a.NameOfItem;

你需要做的匯總數據join 在MS Access中,您可以執行以下操作:

SELECT Invo.NameOfItem, (inventory - invoice) As TotalNeeded
FROM (SELECT NameOfItem, SUM(Volume) as invoice
      FROM Invoice
      GROUP BY NameOfItem
     ) as invo INNER JOIN
     (SELECT NameOfItem, SUM(Quantity) as inventory
      FROM Inventory
      GROUP BY NameOfItem
     ) as inve
     ON Invo.NameOfItem = Inve.NameOfItem;

我只能假設您的表是什么樣子,因為您還沒有包含這些關系或信息,但是根據我的經驗,大概只有一個項目的“庫存”記錄,而“發票”中有多個記錄。

因此,考慮到這一假設,您需要從庫存中與之匹配的一項記錄中減去一項的所有發票條目的所有總和。

最后-TotalNeeded-對我來說字段名稱沒有意義-它確實反映了“ TotalRemaining”

最后終於...我想您要所有庫存-不只是發票

考慮到所有這些-這可能有效

SELECT Inventory.NameOfItem, (Inventory.Volume - nz(t2.TotalSold,0)) As TotalRemaining
FROM Inventory
LEFT JOIN
(SELECT Invoice.NameOfItem, Sum(Invoice.Quantity) AS TotalSold
FROM Invoice
GROUP BY Invoice.NameOfItem) t2
ON Inventory.NameOfItem = t2.NameOfItem

當您將庫存加入發票時, 對於具有相同NameOfItem的 每個數量 ,您將從庫存中獲得其數量。

[{NameOfItem: 'A', Quantity: 1}, {NameOfItem: 'A', Quantity: 2}, {NameOfItem: 'B', Quantity: 1}]來說,您在“發票”表中有以下數據[{NameOfItem: 'A', Quantity: 1}, {NameOfItem: 'A', Quantity: 2}, {NameOfItem: 'B', Quantity: 1}] ,和[{NameOfItem: 'A', Volume: 5}, {NameOfItem: 'B', Volume: 6}]庫存[{NameOfItem: 'A', Volume: 5}, {NameOfItem: 'B', Volume: 6}]表中的[{NameOfItem: 'A', Volume: 5}, {NameOfItem: 'B', Volume: 6}]

加入后,您將擁有[{NameOfItem: 'A', Quantity: 1, Volume: 5 }, {NameOfItem: 'A', Quantity: 2, Volume: 5 }, {NameOfItem: 'B', Quantity: 1, Volume: 6}]

希望現在很明顯,您需要預先在“發票”表中對數據進行分組。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM