SELECT year(holidaydate),month(holidaydate),
sum(case Weekend when true then 1 else 0 end) wkEnd,
sum(case PublicHoliday when true then 1 else 0 end) pubHol
FROM Holiday
GROUP BY year(holidaydate),month(holidaydate)
Ik heb geen SQL-server beschikbaar. Dit is getest op mysql. Hier zijn jaar en maand de functie om het jaar en de maand van de datum terug te geven. Syntaxis van CASE zou hetzelfde moeten zijn in alle databases.