簡體   English   中英

MySql:總和與內部連接相結合 - 結果錯誤

[英]MySql: Sum in combination with inner joins - wrong results

我有三個不同的表:

  1. 文章
  2. 進口(許多行有許多商品編號、購買日期和購買數量)
  3. 出口(具有許多貨號、銷售日期和銷售數量的多行)

對於特定文章,我想知道導入了多少和導出了多少,以及如果可能的話,它們之間的區別,結果應該是這樣的:

102123345, 500, -250, 250

我嘗試了以下 SQL 查詢,但總和不正確。 它要高得多,似乎有什么東西成倍增加了。

SELECT a.Article, b.Article, c.Article, SUM(b.Quantity) AS IMPORT, SUM(c.Quantity) AS EXPORT
FROM sagecl_Article a
INNER JOIN sagecl_import b 
ON a.Article = b.Article
INNER JOIN sagecl_export c 
ON b.Article = c.Article
WHERE a.Article = ?

您正在沿兩個不同的維度進行聚合。 一種解決方案是在加入之前聚合:

SELECT a.Article, i.imports, e.exports,
       (COALESCE(i.imports, 0) - COALESCE(e.exports, 0)) as diff
FROM sagecl_Article a LEFT JOIN
     (SELECT i.Article, SUM(i.Quantity) as imports
      FROM sagecl_import i
      GROUP BY i.Article
     ) i
     ON i.Article = a.Article LEFT JOIN
     (SELECT e.Article, SUM(e.Quantity) as exports
      FROM sagecl_export e
      GROUP BY e.Article
     ) e
     ON e.Article = a.Article 

暫無
暫無

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

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