El problema que tiene esa consulta es que está buscando registros donde haya en el mismo campo dos valores difderentes, cosa imposible.
Ese tipo de condición debe implementarse en el WHERRE que no has puesto.
Probemos así:
Código SQL:
Ver originalSELECT DISTINCT E.IdEstudiante, D.AÑO
FROM estudiantes E INNER JOIN detalles D ON E.IdEstudiante = D.IdEstudiante
WHERE D.AÑO BETWEEN 2013 AND 2014;
Eso, suponiendo que el campo "Año" es numérico, y no de caracteres, porque sino supongo que sería algo como:
Código SQL:
Ver originalSELECT DISTINCT E.IdEstudiante, D.AÑO
FROM estudiantes E INNER JOIN detalles D ON E.IdEstudiante = D.IdEstudiante
WHERE Val(D.AÑO) BETWEEN 2013 AND 2014;