Ver Mensaje Individual
  #3 (permalink)  
Antiguo 18/05/2008, 17:12
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Doble filtrado de fechas

Un detalle:
Si el campo FECHA tiene como valor '0000-00-00' (que representa el NULL de un campo DATE), ¿cómo haces para saber cuál es el más antiguo y cuál el mas reciente de los registros? ¿Tienes algún otro campo DATE, TIME o DATETIME que sirva para saberlo?
El resto es más o menos simple: Primero haces la consulta por la diferencia a '0000-00-00' o con el NULL (por las dudas), ordenándolo por no sé cual campo, y después le haces un UNION ALL con otra consulta que te devuelva el resto.
Algo así como
Código:
SELECT *
FROM
(SELECT * 
FROM tabla
WHERE FECHA  <> '0000-00-00' OR FECHA IS NULL
ORDER BY CampoDesconocido ASC) AS tabla1
UNION ALL
(SELECT * 
FROM tabla
WHERE FECHA = '0000-00-00'
ORDER BY CampoDesconocido ASC) AS tabla2
Tip:
Una consulta que devuelva dos conjuntos unidos, cada uno con su propio ordenamiento DEBE tener en cada subconsulta el ORDER BY, pero la UNION requiere que haya un sólo ORDER BY al final de las selecciones unidas, por lo que para que no genere un error de sintaxis hay que hacerlo como las puse: generar con cada selección una tabla virtual y unirlas ambas.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)