Re: sobre crosstab

From: Gabriel Colina <colina_movil(at)yahoo(dot)com>
To: Jaime Casanova <systemguards(at)gmail(dot)com>, randrade(at)inteligentes(dot)com(dot)mx
Cc: David Primero Segundo <aberracion2001(at)hotmail(dot)com>, pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: sobre crosstab
Date: 2007-02-24 09:32:51
Message-ID: 428809.41261.qm@web34701.mail.mud.yahoo.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Me pase toda la noche, con el crosstab,
y logre mucho, la verdad muy contento estoy, aca tengo
un ejemplo de lo que hice

select * from crosstab('select
id_empresa,id_moneda,sum(importe_con_impuestos)
from central.cabezales group by id_empresa,id_moneda
order by 1,2 ')
as (empresa integer,moneda1 double precision,moneda2
double precision,moneda3 double precision)

obteniendo estos resultados

empresa | moneda1 | moneda2 | moneda3
---------+----------+---------+--------
1 | 0 | 0 |
449 | 40325.65 | |
528 | 16982.79 | |
567 | 1850.01 | |
568 | 5412.09 | 72.57 |
569 | 708.2 | |
598 | 18.28 | |
7249 | 646.12 | |
7250 | 500.84 | |
7252 | 1626.63 | |
7253 | 428.71 | |
7254 | 5314.26 | |
7255 | 1683.19 | |
7256 | 615.59 | |
7257 | 510.29 | |
7258 | 2381.77 | 104.89 |
7260 | 0 | |
7261 | 301.52 | |
7262 | 114.14 | |
(19 filas)

Pero cree una funcion a la que llame crosstabn
para que me devolviera n monedas si no se la cantidad
de monedas que tengo, en realidad pueden ser monedas,
articulos, empresas lo que sea por que eso lo trato
dentro de la funcion pl/sql.

Crosstabn, me devuelve un caracter que contiene:
moneda1 double precision,moneda2 double
precision,moneda3 double precision,............

El caso es que me tranco en una cosita,

select * from crosstab('select
id_empresa,id_moneda,sum(importe_con_impuestos)
from central.cabezales group by id_empresa,id_moneda
order by 1,2 ')
as (empresa integer,moneda1 double precision,moneda2
double precision,moneda3 double precision)

sustituyendo esta parte quiero poner as (empresa
integer,select * from crostabn(parametro) )
y que el resultado de ese select invocando a una
funcion me lo pegue como un string que sustituya el de
monedas.

Con eso podria lograr una funcion crosstab que sume en
x filas, x instancias de otra columna.

Espero haber sido claro.

Bueno cuando empece con esto eran las 22 hs
ahora son las 7:30, quiero dormir.

Prometo que si logro esto publico esta funcion, si no
que alguien me diga como se logra esto mas facil, por
que el delanto fue mucho, pero quiero igualar la
funcion transform y pivot que para esto tiene "el lado
oscuro".

Atte.
Gabriel Colina

__________________________________________________
Correo Yahoo!
Espacio para todos tus mensajes, antivirus y antispam ¡gratis!
Regístrate ya - http://correo.espanol.yahoo.com/

In response to

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Victor Lopez 2007-02-24 12:12:21 Re: Estoy?
Previous Message Jaime Casanova 2007-02-24 07:08:20 Re: Modelo entidad relacion