Re: Ayuda con "DISTINCT ON"

From: Jaime Casanova <systemguards(at)gmail(dot)com>
To: Zuleima Lara <zlara(at)interactivedata(dot)com(dot)ve>
Cc: "Postgres Postgres (E-mail)" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re: Ayuda con "DISTINCT ON"
Date: 2005-12-21 15:29:23
Message-ID: c2d9e70e0512210729l69ad03a4lb5f52207d9c97ee9@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

siempre a la lista... a decir verdad me habia olvidado de tu asunto,
no tengo postgres a la mano y tengo que esperar a salir del trabajo
para probar...

en la lista quiza alguien tenga postgres a la mano... te estoy redireccionando

On 12/21/05, Zuleima Lara <zlara(at)interactivedata(dot)com(dot)ve> wrote:
> Hola, Buenos dias
>
> Escribo porque aun no he podido resolver el problema que tengo con el
> distinct on.
>
> He pobrado la setencia de varias formas y nada.
>
> En mis intentos, me ha funcionado pero unicamente con una expresion, pero al
> agregar dos condiciones me lanza el error.
> ERROR: SELECT DISTINCT ON expressions must match initial ORDER BY
> expressions
> Probe con lo que me indicastes del 1 luego del ORDER BY, pero me lanza el
> mismo error.
>
> ¿Cuando se utiliza una expresion donde el SELECT tenga como condiciones
> varias variables, esta no se puede usar como parte de la expresion del
> distinct on?
> Pregunto eso porque al hacer las diferentes pruebas me he encontrado con que
> la expresion del SELECT mas sencilla es soportada, pero al agregar otra no
> corre, y si ejecuto la que posee varias condiciones tampoco funciona.
>
> No se que hacer.
>
> Voy a escribirte de nuevo el codigo, a ver que sucede. Escribo la parte del
> select; porque ya conocemos como se arma una funcion ;)
>
>
> OPEN cur FOR
>
> SELECT distinct on
>
> (
> (SELECT estado FROM Min WHERE rifMin = Almacen.rifMin),
> (SELECT descripcion FROM ProductosProv WHERE regProdProv =
> Almacen.regProdProv AND rifProv = $2)
> )
>
> (SELECT estado FROM Min WHERE rifMin = Almacen.rifMin) as estado,
>
> (SELECT codProducto FROM ProductosProv WHERE regProdProv =
> Almacen.regProdProv AND
> rifProv = $2) as codigo,
>
> (SELECT descripcion FROM ProductosProv WHERE regProdProv =
> Almacen.regProdProv
> AND rifProv = $2) as descripcion,
>
> (SELECT unidadVta FROM ProductosProv WHERE regProdProv =
> Almacen.regProdProv AND
> rifProv = $2) as unidad,
>
> FROM Almacen WHERE rifMin = Almacen.rifMin AND
> regProdProv = (SELECT regProdProv FROM ProductosProv WHERE
> regProdProv = Almacen.regProdProv AND rifProv = $2)
> AND fecha = $8 AND
> rifMin = (SELECT rifMin FROM Min WHERE rifMin = Almacen.rifMin
> AND estado = (SELECT estado FROM Min WHERE rifMin = Almacen.rifMin))
>
> ORDER BY
> (SELECT estado FROM Min WHERE rifMin = Almacen.rifMin),
> (SELECT descripcion FROM ProductosProv WHERE regProdProv =
> Almacen.regProdProv AND rifProv = $2),
> fecha DESC, hora DESC;
>
> RETURN cur;
> De antemano muchisimas gracias,
> te agradeceria lo que pudieras decir al respecto.
>

--
Atentamente,
Jaime Casanova
(DBA: DataBase Aniquilator ;)

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Antonio 2005-12-21 15:29:51 Re: Migracion de access a postgres
Previous Message Jaime Casanova 2005-12-21 15:15:25 Re: Validar parametros entrada