[英]MySql: Sum in combination with inner joins - wrong results
我有三個不同的表:
對於特定文章,我想知道導入了多少和導出了多少,以及如果可能的話,它們之間的區別,結果應該是這樣的:
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.