I have two basic queries which I need to sum the totals of:
Select hours, sum(hours) FROM table WHERE name=\'xxx\' and Description=\'Worked\'
Select hours2,
You would need to place your union into a subquery:
SELECT Hours,
SUM(Hours) AS Hours,
SUM(Hours2) AS Hours2
FROM ( SELECT Hours,
SUM(Hours) AS Hours,
0 AS Hours2
FROM Table
WHERE Name = 'xxx'
AND Description = 'Worked'
GROUP BY Hours
UNION ALL
SELECT Hours2,
0 AS Hours,
SUM(Hours2) AS Hours
FROM Table
WHERE Name = 'xxx'
AND Description2 = 'Worked'
GROUP BY Hours2
) t
GROUP BY Hours;
First of all, you missed group by
, so even though mysql doesn't complain about it, you hours
and hours2
values are meaningless.
Secondly, you the result of UNION
can be put in derived subquery, so you will have the desired total :
SELECT SUM(hr) FROM
(
Select sum(hours) as hr FROM table WHERE name='xxx' and Description='Worked'
UNION ALL
Select sum(hours2) as hr FROM table WHERE name='xxx' and Description2='Worked'
)a