【问题标题】:SUM in MySQL select statement getting incrementedMySQL select 语句中的 SUM 递增
【发布时间】:2017-08-02 13:54:25
【问题描述】:

我有这个 SQL:

SELECT                      
SUM(er.total)    
AS total
FROM    
campaigns AS cmp    
JOIN versions AS cv ON (cv.campaign_id = cmp.id)
JOIN creatives AS cr ON (cr.version_id = cv.id)
JOIN records AS er ON (er.creative_id = cr.id)
WHERE    
cmp.business_id IN (-1,'39909') AND
cv.campaign_id IN (-1,65288) AND
er.type IN (5,6,1) AND    
er.date BETWEEN '2017-06-11' AND '2017-06-11'    
GROUP BY version_id, er.date

我需要在 where 子句中添加一个新条件,为此它需要添加新的连接,像这样 -

    SELECT                      
    SUM(er.total)    
    AS total
    FROM    
    campaigns AS cmp
    JOIN products as p ON (p.campaign_id = cmp.id)
    JOIN versions AS cv ON (cv.campaign_id = cmp.id)
    JOIN creatives AS cr ON (cr.version_id = cv.id)
    JOIN records AS er ON (er.creative_id = cr.id)
    WHERE    
    cmp.business_id IN (-1,'39909') AND
    cv.campaign_id IN (-1,65288) AND
    er.type IN (5,6,1) AND    
    er.date BETWEEN '2017-06-11' AND '2017-06-11' AND
    p.product_id IN(1,2)
    GROUP BY version_id, er.date

但是,在这里,SUM(er.total) 的值发生了变化,它会增加。我尝试添加左/右/内连接。但结果是一样的。我应该如何在不增加总数的情况下为该表添加联接?

【问题讨论】:

    标签: mysql


    【解决方案1】:
    SELECT                      
        SUM(er.total)    
        AS total
        FROM    
        campaigns AS cmp
        JOIN products as p ON (p.campaign_id = cmp.id and p.product_id IN(1,2))
        JOIN versions AS cv ON (cv.campaign_id = cmp.id)
        JOIN creatives AS cr ON (cr.version_id = cv.id)
        JOIN records AS er ON (er.creative_id = cr.id)
        WHERE    
        cmp.business_id IN (-1,'39909') AND
        cv.campaign_id IN (-1,65288) AND
        er.type IN (5,6,1) AND    
        er.date BETWEEN '2017-06-11' AND '2017-06-11' AND
    
        GROUP BY version_id, er.date
    

    试试上面的查询。

    在这里,我做了一些更改,将条件 ON 子句替换为 WHERE 子句。

    【讨论】:

    • 感谢您的回答。但没有奏效。获得递增的总和。
    猜你喜欢
    • 2018-02-17
    • 2020-06-20
    • 2014-09-16
    • 2012-09-16
    • 2014-03-30
    • 2016-07-20
    • 2014-11-17
    • 1970-01-01
    • 2012-10-14
    相关资源
    最近更新 更多