Como observación final, la consulta original que planteo era esta:
Para corregir el segundo punto:
Código:
2. Si entre las dos fechas existen más de 12 registros, entonces traer los más cercanos a la SEGUNDA fecha.
podrías cambiar simplemente el ORDER BY de la primer consulta del UNION...
Código:
SELECT * FROM
(
( SELECT * FROM tabla
WHERE fecha BETWEEN @fechaInferior AND @fechaSuperior
ORDER BY fecha DESC LIMIT 12)
UNION
( SELECT *
FROM tabla
WHERE fecha <= @fechaSuperior
ORDER BY fecha DESC LIMIT 12)
) T
ORDER BY fecha LIMIT 12;
Sin embargo esta consulta FUNCIONA EXACTAMENTE IGUAL QUE LA QUE PUSE EN EL POST ANTERIOR, donde sólo considero una fecha...
Saludos
Leo.