From: | Alvaro Herrera <alvherre(at)surnet(dot)cl> |
---|---|
To: | Alberto <alberto(dot)ipt(at)telefonica(dot)net> |
Cc: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Grupos en un DataReport |
Date: | 2005-06-15 15:49:51 |
Message-ID: | 20050615154951.GE9860@surnet.cl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Wed, Jun 15, 2005 at 01:58:48PM +0200, Alberto wrote:
Hola,
> Lo primero decir que no se si este es el foro mas adecuado a mi
> consulta y si no es así disculpas.
Si, lo es.
> Un ejemplo de lo que quiero es lo siguiente:
>
> Lo que tengo ahora:
>
> ProveedorA Articulo1
> ProveedorA Articulo2
> ProveedorB Articulo3
>
> Y lo que quiero es lo siguiente:
>
> ProveedorA Articulo1
> Articulo2
> ProveedorB Articulo3
Hum, raro. La verdad no se como se haria en Postgres. Creo que lo mas
sencillo seria hacerlo en la aplicacion cliente, si es posible (en
cualquier lenguaje normal se puede, pero si es en uno de esos lenguajes
visuales en que enchufas la salida de SQL a un elemento grafico, puede
ser complicado o imposible).
Ahora que lo pienso, si se puede hacer -- solo tienes que hacer una
funcion que haga la consulta, y recorra el resultado, de manera que
reemplace el valor de la primera columna por NULL si es que el valor es
igual al del registro anterior. Algo como
FOR SELECT INTO rec ... LOOP
if rec.proveedor = prev.proveedor then
rec.proveedor = null;
end if;
prev.proveedor = rec.proveedor;
return next rec;
end loop;
Tienes que crear una funcion que retorne SETOF RECORD. Se ha discutido
antes como se hace esto -- mira los archivos.
--
Alvaro Herrera (<alvherre[a]surnet.cl>)
Management by consensus: I have decided; you concede.
(Leonard Liu)
From | Date | Subject | |
---|---|---|---|
Next Message | Alvaro Herrera | 2005-06-15 15:51:18 | Re: baja en la lista |
Previous Message | Manuel Sugawara | 2005-06-15 15:48:33 | Re: Hola buenos Dias? Es pecado pedir ayuda? |