Creating a View with results from join of scalar tables
Did you try chaining your WITH statements together? 

N.B. This may not be the most-optimal method of solving this problem, but should work based on your existing approach

CREATE VIEW dbo.MyViewName
AS
WITH R(N) AS
(
   SELECT 0
   UNION ALL
   SELECT N+1 
   FROM R
   WHERE N &lt; 12
), MonthYears AS
(
  SELECT LEFT(DATENAME(MONTH,DATEADD(MONTH,-N,GETDATE())),3) + '-' + 
       CAST(DATEPART(YEAR,DATEADD(MONTH,-N,GETDATE())) as varchar(10)) AS Name
  FROM R
), MonthYearsData AS
(
   SELECT 
     YEAR(RequestedOn) Yr, 
     MONTH(RequestedOn) Mon, 
     SUBSTRING(DateName( month , DateAdd( month , MONTH(RequestedOn) , 0 ) - 1 ),1,3) + '-' + CAST(YEAR(RequestedOn) as varchar(10)) as MonYr, 
     count(*) CrCount
   FROM TempTableTest
   WHERE RequestedOn &gt;= DATEADD(MONTH, -13, GETDATE())
   GROUP BY YEAR(RequestedOn), MONTH(RequestedOn)
)
SELECT M.Name, ISNULL(N.CrCount,0) as CRCount
FROM MonthYears M 
left outer join MonthYearsData N ON M.Name = N.MonYr
GROUP BY M.Name, N.CrCount, M.LNo
ORDER BY M.LNo DESC;