MySQL - GROUP BY not working with multiple CASE WHEN statements
1
vote
2
answers
556
views
I am working on a database with Kickstarter database, and I'm trying to:
1. Define short, medium-lengthed, and long campaigns
2. See how much each length of campaign raise
3. Convert different currencies into USD
My original code is as follows:
SELECT
CASE
WHEN DATEDIFF(campaign.deadline,campaign.launched)30 AND DATEDIFF(campaign.deadline,campaign.launched)30 AND DATEDIFF(campaign.deadline,campaign.launched)<=60 THEN 'Mid-lengthed Campaign'
ELSE 'Long Campaign'
END AS 'Campaign Length',
CASE
WHEN currency.name='GBP' THEN ROUND(SUM(campaign.pledged)*0.80,2)
WHEN currency.name='CAD' THEN ROUND(SUM(campaign.pledged)*1.36)
WHEN currency.name='AUD' THEN ROUND(SUM(campaign.pledged)*1.43)
WHEN currency.name='NOK' THEN ROUND(SUM(campaign.pledged)*9.28)
WHEN currency.name='EUR' THEN ROUND(SUM(campaign.pledged)*0.87)
WHEN currency.name='MXN' THEN ROUND(SUM(campaign.pledged)*22.48)
WHEN currency.name='SEK' THEN ROUND(SUM(campaign.pledged)*0.04)
WHEN currency.name='NZD' THEN ROUND(SUM(campaign.pledged)*1.53)
WHEN currency.name='CHF' THEN ROUND(SUM(campaign.pledged)*0.94)
WHEN currency.name='DKK' THEN ROUND(SUM(campaign.pledged)*6.52)
WHEN currency.name='HKD' THEN ROUND(SUM(campaign.pledged)*7.75)
WHEN currency.name='SGD' THEN ROUND(SUM(campaign.pledged)*1.39)
WHEN currency.name='JPY' THEN ROUND(SUM(campaign.pledged)*107.11)
ELSE ROUND(SUM(campaign.pledged),2)
END AS 'Amount Raised'
FROM campaign
LEFT JOIN currency ON currency.id=campaign.currency_id
GROUP BY
Campaign Length
,currency.id;
But the result is instead not grouping as I intended:
Campaign Length. ---- Amount Raised
Short Campaign. ---- XXXXXXXXXXXXX
Mid-Lengthed Campaign ---- XXXXXXXXXXXXX
Long Campaign. ---- XXXXXXXXXXXXX
Mid-Lengthed Campaign ---- XXXXXXXXXXXXX
Mid-Lengthed Campaign ---- XXXXXXXXXXXXX
Short Campaign. ---- XXXXXXXXXXXXX
I've tried many ways, but couldn't find a solution
Asked by Ian Yu
(11 rep)
Jul 20, 2020, 06:52 AM
Last activity: Apr 18, 2025, 08:02 PM
Last activity: Apr 18, 2025, 08:02 PM