SELECT T.YEAR
, T.MONTH
, T.Dept
, T.Account
, a.Actual
, b.Budget
FROM (
SELECT T2.*,T3.number MONTH
FROM(
SELECT YEAR,Dept,Account
FROM (SELECT YEAR,Dept,Account FROM cActual1 UNION ALL SELECT YEAR,Dept,Account FROM cBudget1)T1
GROUP BY YEAR,Dept,Account
)T2,master..spt_values T3
WHERE T3.type='P'AND T3.number>0 AND T3.number<=12
)T LEFT JOIN cActual1 AS a
ON T.Year=a.Year AND T.Month=a.Month AND T.Dept=a.Dept AND T.Account=a.Account
 LEFT JOIN cBudget1 AS b
ON T.Year=b.Year AND T.Month=b.Month AND T.Dept=b.Dept AND T.Account=b.Account
ORDER BY T.Dept,T.Account,T.YEAR,T.MONTH