在sum(IF)语句中使用子查询

时间:2016-10-13 15:31:54

标签: mysql

我正在创建一个管道报告,以便我们可以计算每周添加的机会。

我的查询是:

    SELECT 
    sum(IF(o.date_entered > date_sub(now(), INTERVAL 1 WEEK), 1,0)) 

非常简单且有效。问题是,销售现在也想把任何机会都算作已经摆脱亏损状态的新机会。所以,我左边加入了一个审计表来包含这个用例。但现在,它计算给定帐户的审计表的每个实例,其中field = sales_stage且before_value是丢失状态。所以,并不是说这种情况经常会发生,但如果机会从亏损变为领先,再到亏损,再回到领先,它将被视为2个新机会。我只想获得field = sales_stage的最新实例,而before_value是一个丢失状态,并计算一次。

我想要在左连接中使用类似子查询的东西,并且我一直在尝试使用MAX,但没有任何工作。这是我加入的一部分:

    INNER JOIN opportunities o ON ao.opportunity_id=o.id
    LEFT JOIN opportunities_audit oa ON o.id=oa.parent_id 
                AND after_value_string = 'Loss'
                AND date_created > date_sub(now(), INTERVAL 1 WEEK)

有人知道这类问题的解决方案吗?提前感谢您的任何建议!

0 个答案:

没有答案