Чтобы избежать чрезмерного усложнения агрегации с помощью операторов case, я бы использовал два запроса и объединение, чтобы сделать его достаточно простым. Следующее дает желаемые результаты в моей среде.
SELECT filekey, eventdate, 1 AS 'hourstype', SUM(hours) AS 'hours' FROM hourshist
WHERE hourstype IN (1,2)
GROUP BY filekey, eventdate
UNION
SELECT filekey, eventdate, hourstype, hours FROM hourshist
WHERE hourstype NOT IN (1,2);
Я использовал следующее для создания тестовой среды, которую вы описали:
CREATE TABLE hourshist
(
filekey INT,
eventdate DATE,
hourstype INT,
hours INT
);
INSERT INTO hourshist
VALUES (1,'6/1/2018',1,9)
,(1,'6/1/2018',2,3)
,(1,'6/2/2018',1,8);