newphpcoder Posted July 10, 2013 Share Posted July 10, 2013 Hi,I have data:shift_id = 1---2---3---4---5compound_output = 5---10--20--50--10process_id = 7compound_type = P28and now I need to create a query that sum the value of (1+3+(5/ 2)) and (2+4+(5/ 2))here is my query: SELECT process_id, compound_type, CASE WHEN (shift_id IS NOT NULL AND (shift_id = 1 OR shift_id = 3 OR shift_id = 5)) THEN SUM((compound_output)/2) when (shift_id IS NOT NULL AND (shift_id = 2 OR shift_id = 4 OR shift_id = 5)) THEN SUM((compound_output)/2) END AS val FROM op_output WHERE process_id = 7 and compound_type = 'P28' HAVING val IS NOT NULL and the output of this is:val = 47.500000but it should be:7---P28--307---P28--65Thank you so much..I hope somebody can help me to get the correct values.Thank you so much. Quote Link to comment https://forums.phpfreaks.com/topic/280023-wrong-sum-output-from-case-statement-condition/ Share on other sites More sharing options...
Barand Posted July 12, 2013 Share Posted July 12, 2013 something like this? SELECT SUM(IF(shift_id IN (1,3,5), IF(shift_id=5, compound_output/2,compound_output),0)) as val1, SUM(IF(shift_id IN (2,4,5), IF(shift_id=5, compound_output/2,compound_output),0)) as val2 FROM op_output; Quote Link to comment https://forums.phpfreaks.com/topic/280023-wrong-sum-output-from-case-statement-condition/#findComment-1440492 Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.