You're going to need to give us some structure to go on. We can't help you write a query without knowing what your source data looks like.
In general, you need to use Group By to sum things up, here;s something I threw together that gets you in the ballpark.
Declare @basedate datetime
select @basedate = '2000-01-08 00:00:00.000' -- This needs to be a Friday
Declare @start datetime
Declare @end datetime
Select @start = '2015-06-01 00:00:00.000'
Select @end = '2015-07-01 00:00:00.000'
Select CONVERT(VARCHAR(7), Coalesce(enddate, startdate), 126) as month,
DATEADD(WEEK, DATEDIFF(WEEK, @basedate, Coalesce(enddate, startdate)), @basedate)-1 AS ENDWEEK, -- end of week
sum(case when (StartDate >= @start and StartDate < @end) then 1 else 0 end) as NewStarts,
sum(case when (EndDate >= @start and EndDate < @end) then 1 else 0 end) as Rolloffs,
sum(case when (EndDate >= @start and EndDate < @end) and EndReason = 'VOLUNTARY' then 1 else 0 end) as VoluntaryRolloffs,
sum(case when (EndDate >= @start and EndDate < @end) and EndReason <> 'VOLUNTARY' then 1 else 0 end) as InvoluntaryRolloffs
from Emps
where (StartDate >= @start and StartDate < @end)
or (EndDate >= @start and EndDate < @end)
Group by CONVERT(VARCHAR(7), Coalesce(enddate, startdate), 126),
DATEADD(WEEK, DATEDIFF(WEEK, @basedate, Coalesce(enddate, startdate)), @basedate)-1