Hola de nuevo Dylanrv:
Cita: Sólo hay un detalle, en vez de ser a la fecha anterior, ha de ser a la posterior, es decir, si hay 16 registros ha de sacar los 12 últimos.
Sinceramente con esta explicación me dejas con más dudas que respuestas
... si esto es lo que quieres ENTONCES DE NADA TE SIRVE MANEJAR UN RANGO DE FECHAS... simplemente con poner la fecha SUPERIOR la consulta debe funcionar como lo pides. mira, chequemos con los datos de ejemplo y con la consulta:
Código MySQL:
Ver original+------+------------+
| id | fecha |
+------+------------+
| 1 | 2013-05-01 |
| 2 | 2013-05-02 |
| 3 | 2013-05-03 |
| 4 | 2013-05-04 |
| 5 | 2013-05-05 |
| 6 | 2013-05-06 |
| 7 | 2013-05-07 |
| 8 | 2013-05-08 |
| 9 | 2013-05-09 |
| 10 | 2013-05-10 |
| 11 | 2013-05-11 |
| 12 | 2013-05-12 |
| 13 | 2013-05-13 |
| 14 | 2013-05-14 |
| 15 | 2013-05-15 |
| 16 | 2013-05-16 |
+------+------------+
16 rows
in set (0.00 sec
)
Ahora ponemos las mismas condiciones que puse de ejemplo:
Código:
Si ponemos como fechas los dos límites (2013-05-01 y 2013-05-16), existen 16 registros, el resultado deberá mostrar los últimos 12:
Código MySQL:
Ver originalmysql
> SET @fechaSuperior
= '2013-05-16';Query OK, 0 rows affected (0.00 sec)
+------+------------+
| id | fecha |
+------+------------+
| 16 | 2013-05-16 |
| 15 | 2013-05-15 |
| 14 | 2013-05-14 |
| 13 | 2013-05-13 |
| 12 | 2013-05-12 |
| 11 | 2013-05-11 |
| 10 | 2013-05-10 |
| 9 | 2013-05-09 |
| 8 | 2013-05-08 |
| 7 | 2013-05-07 |
| 6 | 2013-05-06 |
| 5 | 2013-05-05 |
+------+------------+
12 rows
in set (0.00 sec
)
Código:
Si ponemos como limites (2013-05-03 y 2013-05-14), existen EXACTAMENTE 12 REGISTROS, por lo tanto muestra esos:
Código MySQL:
Ver originalmysql
> SET @fechaSuperior
= '2013-05-14';Query OK, 0 rows affected (0.00 sec)
+------+------------+
| id | fecha |
+------+------------+
| 14 | 2013-05-14 |
| 13 | 2013-05-13 |
| 12 | 2013-05-12 |
| 11 | 2013-05-11 |
| 10 | 2013-05-10 |
| 9 | 2013-05-09 |
| 8 | 2013-05-08 |
| 7 | 2013-05-07 |
| 6 | 2013-05-06 |
| 5 | 2013-05-05 |
| 4 | 2013-05-04 |
| 3 | 2013-05-03 |
+------+------------+
12 rows
in set (0.00 sec
)
Código:
Si ponemos como limites (2013-05-10 y 2013-05-16) sólo existen 7 registros, por lo que se mostrarán esos 7 registros más los 5 registros más cercanos al límite inferior:
Código MySQL:
Ver originalmysql
> SET @fechaSuperior
= '2013-05-16';Query OK, 0 rows affected (0.00 sec)
+------+------------+
| id | fecha |
+------+------------+
| 16 | 2013-05-16 |
| 15 | 2013-05-15 |
| 14 | 2013-05-14 |
| 13 | 2013-05-13 |
| 12 | 2013-05-12 |
| 11 | 2013-05-11 |
| 10 | 2013-05-10 |
| 9 | 2013-05-09 |
| 8 | 2013-05-08 |
| 7 | 2013-05-07 |
| 6 | 2013-05-06 |
| 5 | 2013-05-05 |
+------+------------+
12 rows
in set (0.00 sec
)
Es decir DE NADA TE SIRVE LA FECHA INFERIOR... es completamente inútil, no la necesitas. Si esto no te sirve entonces el problema está en otro lado... tal como lo comenta gnzsoloyo, a nosotros de nada nos sirve la consulta como la pones, pues no tenemos el contexto de todas las tablas, ni de los datos... trata de explicar cuál es tu situación, si es necesario, postea la estructura de todas tus tablas y pon algunos datos de ejemplo... atiende todas las observaciones que te puso gnzsoloyo y con gusto tratamos de ayudarte.
Saludos
Leo.