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. 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; 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
Archived
This topic is now archived and is closed to further replies.