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)
Jag har ingen SQL-server tillgänglig. Detta är testat på mysql. Här är år och månad funktion för att returnera år och månad för datum. Syntax för CASE bör vara samma i databasen.