Sample Header Ad - 728x90

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