Hi ... Try this
;WITH MONTHINFOCTE AS (
SELECT DAY(DATEADD(mm,DATEDIFF(mm,-1,GETDATE()),-1)) TotalDaysInMonth,
DATEADD(MM,DATEDIFF(MM,0,GETDATE()),0) Start_OF_Month,
DATEADD(MM,DATEDIFF(MM,0,DATEADD(MM,1,GETDATE())),-1) End_OF_Month
),
DATESCTE AS (
SELECT Start_OF_Month AS SM,DATEPART(DW,Start_OF_Month) DAYNUMBER
FROM MONTHINFOCTE
UNION ALL
SELECT DATEADD(DD,1,SM),DATEPART(DW,SM) FROM DATESCTE
WHERE SM < (SELECT End_OF_Month FROM MONTHINFOCTE)
)
SELECT TotalDaysInMonth, COUNT(*) TotalSundays,
TotalDaysInMonth- COUNT(*) AS NoOfWeekDays
FROM DATESCTE,MONTHINFOCTE WHERE DAYNUMBER = 7
GROUP BY DAYNUMBER,TotalDaysInMonth
Happy coding...