tentar:
SELECT weekofyear(forcast_date) AS week_forcast,
COUNT(forcast_date) AS count_forcast, t2.count_actual
FROM
t t1 LEFT JOIN (
SELECT weekofyear(actual_date) AS week_actual,
COUNT(forcast_date) AS count_actual
FROM t
GROUP BY weekOfYear(actual_date)
) AS t2 ON weekofyear(forcast_date)=week_actual
GROUP BY
weekofyear(forcast_date), t2.count_actual
sqlFiddle
Você tem que escrever cerca de 30 (suas colunas de data) de junção esquerda, e o requisito é que sua primeira coluna de data não tenha uma semana vazia (com uma contagem de 0) ou as junções serão perdidas.