MySQL查询将对其他字段中的if语句求和

MySQL查询将对其他字段中的if语句求和,mysql,Mysql,我在使用mysql查询时遇到了问题,我想选择SUM with else if语句,这是我的故事 我的问题是: SELECT SUM(s.total_revenue) AS sum_revenue, m.revenue_type AS revenue_type, d.campaignid AS placement_id FROM ox_data_summary_ad_hourly AS s INNER JOIN ox_banners AS d ON (d.bannerid = s.ad_id)

我在使用mysql查询时遇到了问题,我想选择SUM with else if语句,这是我的故事

我的问题是:

SELECT SUM(s.total_revenue) AS sum_revenue, m.revenue_type AS revenue_type, d.campaignid AS placement_id
FROM ox_data_summary_ad_hourly AS s
INNER JOIN ox_banners AS d ON (d.bannerid = s.ad_id) 
INNER JOIN ox_campaigns AS m ON (m.campaignid = d.campaignid) 
INNER JOIN ox_clients AS a ON (a.clientid = m.clientid) 
WHERE a.type = 0
GROUP BY placement_id
LIMIT 0 , 30
并在上面的查询中得到如下结果:

我想生成以下查询: 如果收入类型=4将改变价值总和收入=价值分配id, 示例结果如下图所示:


谢谢您的帮助。

您可以使用
大小写
表达式获得结果:

SELECT 
    case 
        when m.revenue_type = 4 
        then d.campaignid 
        else SUM(s.total_revenue) end AS sum_revenue, 
    m.revenue_type AS revenue_type, 
    d.campaignid AS placement_id
FROM ox_data_summary_ad_hourly AS s
INNER JOIN ox_banners AS d 
    ON (d.bannerid = s.ad_id) 
INNER JOIN ox_campaigns AS m 
    ON (m.campaignid = d.campaignid) 
INNER JOIN ox_clients AS a 
    ON (a.clientid = m.clientid) 
WHERE a.type = 0
GROUP BY placement_id
LIMIT 0 , 30

选择m.revenue_type=4时的案例,然后选择d.campaignid else SUM(s.total_revenue)作为SUM_revenue end,选择m.revenue_type作为revenue_type,选择d.campaignid作为placement_id 从ox_数据_摘要_广告_每小时作为s 内部连接ox_横幅为d ON(d.bannerid=s.ad_id) 内部加入ox_活动作为m ON(m.campaignid=d.campaignid) 内部将ox_客户端作为ON连接(a.clientid=m.clientid) 其中a.type=0 按位置分组\u id
限制0,30

也谢谢解决,但我使用上面的代码,谢谢你的帮助。很抱歉,我的代码没有格式化,因为我的iPhone上没有任何选项好的,没问题,谢谢兄弟。