[Pgsql-ayuda] OrdenaciŁn de fechas con fechas nulas

Terry Yapt pgsql@technovell.com
Sat, 17 May 2003 18:35:52 +0200


No he podido probarla, pero creo que funcionara y seguro que puedes optimizar algunas cosas:

===========
SELECT
     A.id_cliente
    ,B.ultimo
    ,COALESCE(B.ultimo,DATE('01/01/0001')) AS ordenacion
  FROM
    clientes A INNER JOIN (SELECT
                               B.id_cliente
                              ,MAX(B.fecha) AS ultimo
                             FROM pedidos B
			     GROUP BY
			       B.id_cliente) AS B
	         ON     B.id_cliente = A.id_cliente
  WHERE
    A.poblacion ILIKE '%albacete%'
  ORDER BY
    ordenacion DESC;
===========

Saludos.

-----Original Message-----
From: Antonio Navarro Navarro <hostmaster@bemarnet.es>
To: pgsql-ayuda@tlali.iztacala.unam.mx
Date: Fri, 16 May 2003 09:17:02 +0200 
Subject: [Pgsql-ayuda] OrdenaciŁn de fechas con fechas nulas

Buenos das,

Tengo una consulta sencilla que obtiene una serie de datos de dos
tablas :

SELCT id_cliente, (SELECT MAX(fecha) FROM pedidos WHERE pedidos.id_cliente=
clientes.id_cliente) AS ultimo FROM clientes WHERE clientes.poblacion
ILIKE '%albacete%' ORDER BY ultimo DESC;

Los datos que obtiene son un cŁdigo de cliente y la fecha del Șltimo
pedido que este cliente haya realizado.

Por defecto aparecen en primer lugar los registros que no tienen
ningȘn pedido realizado, de esta forma :

 id_cliente |       ultimo
------------+---------------------
 01395      | 
 37120      |
 99687      | 2003-04-17 00:00:00
 06701      | 2002-11-14 00:00:00
 06525      | 2002-03-26 00:00:00

Yo quiero que se mantenga la ordenaciŁn pero que los pedidos con fecha
en blanco aparezcan al final, es decir :

 id_cliente |       ultimo
------------+---------------------
 99687      | 2003-04-17 00:00:00
 06701      | 2002-11-14 00:00:00
 06525      | 2002-03-26 00:00:00
 01395      |
 37120      |

El problema es que no puedo aplicar ninguna funciŁn al campo 'ultimo'
para, por ejemplo ordenar de esta forma :

ORDER BY (ultimo IS NOT null), ultimo DESC

Postgres me dice que no encuentra el atributo :

ERROR:  Attribute "ultimo" not found

¿ A alguien se le ocurre una forma de realizar la consulta ?

Un saludo,

Antonio

_______________________________________________
Pgsql-ayuda mailing list
Pgsql-ayuda@tlali.iztacala.unam.mx
http://tlali.iztacala.unam.mx/mailman/listinfo/pgsql-ayuda