que te faltan los campos por dode haces el amarre entre tus joins,
Código SQL:
Ver originalSELECT
Datos.AnioContrato,
Datos.FchInicio,
Datos.FchFin,
Datos.FchBaja,
t2.fecha,
t2.Prorroga,
NH,
5*NH AS Importe
FROM (SELECT CASE Dato.AnioContrato
WHEN '0' THEN
CASE MONTH(Dato.FchInicio)
WHEN '2' THEN
CASE DAY(Dato.FchInicio)
WHEN '1' THEN 43
....
WHEN '31' THEN 2
END
ELSE 43
END
ELSE
CASE DAY(Dato.FchInicio)
WHEN '1' THEN 26
.....
WHEN '31' THEN 1
END
END AS NH FROM OfcContratosFormacion_DatosCtto AS Dato) t1 INNER JOIN
OfcContratosFormacion_DatosCtto AS Datos ON (t1.id=datos.id)
RIGHT JOIN (
SELECT
MAX(FchInicio) AS fecha,
COUNT(FchInicio)-1 AS Prorroga,
IDContratoFormacion
FROM OfcContratosFormacion_DatosCtto
GROUP BY IDContratoFormacion) AS t2
ON (Datos.IDContratoFormacion=t2.IDContratoFormacion AND Datos.FchInicio=t2.fecha)
WHERE Datos.FchInicio IS NOT NULL