在 mysql 中使用 if 子句和标签时出现 GROUP BY 问题

GROUP BY issue when using if clause and label in mysql

我有以下查询:

    SELECT  if(branch='snj' or branch='nnj', 'nj', branch) as 'Branch',
            WEEK(srv_date,1) as 'Week No.',
            srv_date as 'Srv Date',
            (SUM(revenue_var)+sum(revenue)) as 'Proj Rev',
            sum(revenue) as 'Actual Rev',
            sum(revenue_var) as 'Var Rev',
            (SUM(stops)+sum(stops_var)) as 'Proj Stops',
            sum(stops) as 'Actual Stops',        
            sum(stops_var) as 'Var Stops'
    FROM `route_history`
    GROUP BY srv_date, Branch
    ORDER BY srv_date, Branch

除了 Branch 为 'nj' 时,结果符合预期。当它是 'nj' 时,两条记录将显示在两行中,并显示各自的结果,而不是相加并显示在一行中。

感谢任何帮助!

感谢 Sami Kuhmonen,解决方案如下:

SELECT  if(branch='snj' or branch='nnj', 'nj', branch) as 'Branch',
            WEEK(srv_date,1) as 'Week No.',
            srv_date as 'Srv Date',
            (SUM(revenue_var)+sum(revenue)) as 'Proj Rev',
            sum(revenue) as 'Actual Rev',
            sum(revenue_var) as 'Var Rev',
            (SUM(stops)+sum(stops_var)) as 'Proj Stops',
            sum(stops) as 'Actual Stops',        
            sum(stops_var) as 'Var Stops'
    FROM `route_history`
    GROUP BY srv_date, if(branch='snj' or branch='nnj', 'nj', branch)
    ORDER BY srv_date, Branch