Przede wszystkim przegapiłeś group by
, więc chociaż mysql nie narzeka na to, to hours
i hours2
wartości są bez znaczenia. Po drugie, otrzymujesz wynik UNION
można umieścić w pochodnym podzapytaniu, więc uzyskasz pożądaną sumę :
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