SQL-查询总数不正确

哈桑·凯恩·图兰(Hasan Kaan TURAN)

我有这个查询;

    SELECT l.Name, COALESCE(SUM(A.Count), 0) AS A, COALESCE(SUM(B.Count), 0) AS B
    FROM List l
    LEFT JOIN A ON A.Name = l.Name
    LEFT JOIN B ON B.Name = l.Name
    GROUP BY l.Name
    ORDER BY l.Name

而且查询结果不正确。

表A中的Product3的总和不正确。

演示:https : //www.db-fiddle.com/f/rdKLkyaeEsi8bPcNPkUnTE/4

卢卡斯·索兹达(Lukasz Szozda)

您可以分别为A和B求和,然后合并结果:

SELECT Name, MAX(A) AS A, MAX(B) AS B
FROM (
  SELECT l.Name, SUM(A.Count) AS A, 0 AS B
  FROM List l
  LEFT JOIN A ON A.Name = l.Name
  GROUP BY l.Name
  UNION ALL
  SELECT l.Name, 0 AS A, SUM(B.Count)AS B
  FROM List l
  LEFT JOIN B ON B.Name = l.Name
  GROUP BY l.Name) sub
GROUP BY Name
ORDER BY Name;

db-fiddle.com演示

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章