Espero que el siguiente te sirva de ayuda:
Código SQL:
Ver originalDECLARE @A DateTime='20140101',
@B DateTime='20140215';
WITH F AS
(SELECT @A Fecha
UNION ALL
SELECT DateAdd(DAY,1,Fecha)
FROM F
WHERE Fecha<@B)
SELECT *
FROM F
OUTER Apply (SELECT COUNT(CASE WHEN F.Fecha=T.Fecha_Inicio THEN 1 ELSE NULL END) Iniciados,
COUNT(CASE WHEN F.Fecha=T.Fecha_Fin THEN 1 ELSE NULL END) Finalizados
FROM MiTabla T
WHERE F.Fecha IN (T.Fecha_Inicio,T.Fecha_Fin)) T
OPTION (MaxRecursion 0);