Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Können Sie helfen, die Abfrage oder eine andere Abfrage zu ändern, um das erwartete Ergebnis zu erhalten?

Wenn Sie gemäß Ihrem Datenbankschema nur das erwartete Ergebnis erhalten möchten, versuchen Sie es bitte mit folgendem SQL;)

select 
    case source_id when 1 then 'online' when 2 then 'visit' when 3 then 'phone' end as `Type`,
    sum(if(month(date_created) = 5, total_price, 0)) as `May`,
    sum(if(month(date_created) = 6, total_price, 0)) as `June`
from `orders`
where date_created between (curdate() - interval 1 month) and curdate()
group by source_id 

SQLFiddle-DEMO HIER .