【问题标题】:multiple mysql JOINs with Aggregate functions具有聚合函数的多个 mysql JOIN
【发布时间】:2012-07-05 10:41:58
【问题描述】:

我正在尝试加入 3 个表

Article、Stock 和 Sold 表

我想为每篇文章从表 Stock 中选择其 QteEntre 的总和以及 表中的 Qte 已售出 这是我的代码

Select  Article.IdArt,
        Sum(sold.Qte),
        Sum(Stock.QteEntree)
from (((Article) 
        Left Join Sold on Sold.IdArt = Article.IdArt)
        Left Join Stock on Stock.IdArt = Article.IdArt)
Group by Article.IdArt

但我总是得到(例如)IdArt 乘以 2 的 QteEntree 结果 并将 Qte 的结果乘以 3 我猜是因为我在 Sold 表中有 2 条记录,在 Stock 表中有 3 条记录

我该如何解决这个问题?

谢谢

【问题讨论】:

    标签: sql


    【解决方案1】:

    使用子查询试一试:

    select a.IdArt,
           (select sum(Qte) from Sold where IdArt = a.IdArt group by IdArt) as QteSum,
           (select sum(QteEntree) from Stock where IdArt = a.IdArt group by IdArt) as QteEntreeSum
    from Article a
    

    【讨论】:

    • 这个查询对大型数据集有效吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-02
    • 1970-01-01
    • 2013-12-31
    • 2011-05-26
    • 2014-09-07
    相关资源
    最近更新 更多