WITH Timetable([Hours],code,FiMonth,Mgr) as
(
SELECT 16,'OT','2011M1','Sam' UNION ALL
SELECT 0.25,'DT','2011M1','Peter' UNION ALL
SELECT 1.75,'HNE','2011M1','george' UNION ALL
SELECT 6.5,'DT','2010M1','Peter' UNION ALL
SELECT 3.25,'OT','2010M1','Sam' UNION ALL
SELECT 0.5,'DT','2010M2','Sam' UNION ALL
SELECT 30,'HNE','2011M1','John'
)
SELECT Mgr,
SUM(CASE
WHEN code IN ( 'OT', 'DT' ) THEN CAST([Hours] AS FLOAT)
ELSE 0
END)/ NULLIF(SUM(CAST([Hours] AS FLOAT)),0) AS [Time%]
FROM Timetable t
WHERE code IN ( 'OT', 'DT', 'HNE' )
GROUP BY Mgr