Ordenar resultados complicados

From: Carolina Román Salgado <rossyr(at)abulafia(dot)ciencias(dot)uchile(dot)cl>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Ordenar resultados complicados
Date: 2009-10-12 17:06:18
Message-ID: 1255367178.31951.175.camel@swpx22.sw.ehu.es
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Hola a todos

Antes ya les he contado que trabajo con Drupal sobre Postgres. Hoy tengo
un problema que ni siquiera estoy muy segura de entender bien y quisiera
saber si pueden ayudarme un poco.

En el sitio en que trabajo tengo noticias y eventos, que son desplegados
en portada como 'últimas actividades'. Las posibilidades que me da el
gestor de contenidos para crear una lista ordenada son muy limitadas y
estoy intentando escribir un código en PHP que cree la lista que deseo.
Pero no logro que Postgres me haga esa lista.

Las noticias deben estar ordenadas por fecha de publicación, la más
cercana a hoy va primero. Los eventos se deben ordenar por fecha de
inicio, el más cercano va primero. Aunque las noticias siempre tienen
una fecha el pasado y los eventos siempre en el futuro, ambos deberían
ser ordenados por la diferencia entre la fecha de hoy y otra fecha.

Intenté usar algo como

SELECT title, id ....
ORDER BY
case when type = 'eventos' then publish_date end,
case when type = 'noticias' then starting_date end;

y publish_date es (Drupal almacena las fechas como enteros y no sé cómo
obtener la fecha de ahora mismo en formato Unix timestamp para evitarme
pasar todo a fechas y luego a Unix timestamp otra vez)

extract(EPOCH FROM CURRENT_TIMESTAMP - (TIMESTAMP 'epoch' + published
* INTERVAL '1 second');

pero obtengo las noticias y eventos ordenados por bloque, primero
eventos y luego noticias, cuando lo que quiero es que estén mezclados,
es decir, que estén ordenados por esa diferencia independientemente del
tipo de contenidos.

Una solución posible es agregar a noticias el campo starting_date con un
valor igual al de la fecha de publicación y ordenar por allí, pero a
menos que sea mi última alternativa, preferiría no hacer algo tan feo.

¿Es posible 'mezclar' los resultados? ¿Podrían darme una indicación para
saber qué cosa nueva debo aprender? :-D

Muchas gracias, como siempre.
--
Carolina Román Salgado <rossyr(at)abulafia(dot)ciencias(dot)uchile(dot)cl>

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message jiorchovic H 2009-10-12 19:14:08 i don´t know
Previous Message Emanuel Calvo Franco 2009-10-12 16:29:16 Re: offtopic: instalacion plr con soporte para imagenes (mini how-to)