Skip site navigation (1) Skip section navigation (2)

Re: Union

From: Alvaro Herrera <alvherre(at)commandprompt(dot)com>
To: Felipe Fernandez <ffdezrguez(at)tiscali(dot)es>
Cc: Postgresql <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Union
Date: 2007-04-24 13:44:06
Message-ID: 20070424134406.GB4009@alvh.no-ip.org (view raw or flat)
Thread:
Lists: pgsql-es-ayuda
Felipe Fernandez escribió:
> Tengo la siguiente consulta pero me dice que no existe la columna fecha(?)
> 
> SELECT REFERENCIA,FOTO1,LOCALIDAD
> FROM tabla1
> WHERE FOTO1 != ''
>               AND ESTADO = 3
>               AND CATEGORIA IN (SELECT CODIGO FROM CATEGORIAS WHERE
> GRUPO=6) 
>              AND DESTACADO = TRUE
> UNION
> SELECT REFERENCIA,FOTO1,LOCALIDAD
> FROM tabla1
> WHERE FOTO1 != ''
>               AND ESTADO = 3
>               AND CATEGORIA IN (SELECT CODIGO FROM CATEGORIAS WHERE GRUPO=6)
>               AND  DESTACADO = FALSE
> ORDER BY FECHA DESC, HORA DESC LIMIT 1;
> 
> ERROR:  no existe la columna «fecha»

Exacto, no existe la columna fecha.  Puedes usar una subconsulta y poner
el order by afuera:

select referencia, foto1, localidad
from (
SELECT REFERENCIA,FOTO1,LOCALIDAD, fecha, hora
FROM tabla1
WHERE FOTO1 != ''
              AND ESTADO = 3
              AND CATEGORIA IN (SELECT CODIGO FROM CATEGORIAS WHERE GRUPO=6) 
             AND DESTACADO = TRUE
UNION ALL
SELECT REFERENCIA,FOTO1,LOCALIDAD, fecha, hora
FROM tabla1
WHERE FOTO1 != ''
              AND ESTADO = 3
              AND CATEGORIA IN (SELECT CODIGO FROM CATEGORIAS WHERE GRUPO=6)
              AND  DESTACADO = FALSE
) foo
ORDER BY FECHA DESC, HORA DESC LIMIT 1;



En todo caso me parece que la consulta que tienes es un poco torpe.
Quedaria mucho mejor asi:

SELECT REFERENCIA,FOTO1,LOCALIDAD, fecha, hora
FROM tabla1
WHERE FOTO1 != ''
              AND ESTADO = 3
              AND CATEGORIA IN (SELECT CODIGO FROM CATEGORIAS WHERE GRUPO=6) 

-- 
Alvaro Herrera                                http://www.CommandPrompt.com/
The PostgreSQL Company - Command Prompt, Inc.

In response to

  • Union at 2007-04-24 08:34:56 from Felipe Fernandez

Responses

  • Re: Union at 2007-04-28 04:00:13 from Victor Lopez

pgsql-es-ayuda by date

Next:From: Alvaro HerreraDate: 2007-04-24 14:29:32
Subject: Re: Nuevas versiones corrigen problemas de seguridad
Previous:From: Raúl Mero MoreiraDate: 2007-04-24 13:12:22
Subject: Re: Union

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group