From: | Raúl Andrés Duque <raulandresduque(at)hotmail(dot)com> |
---|---|
To: | <pgsql-es-ayuda(at)postgresql(dot)org> |
Subject: | Problemas con crosstab |
Date: | 2007-01-05 03:39:14 |
Message-ID: | BAY135-DAV1843FD4F565DF790B6BBDBABF0@phx.gbl |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
Cordial saludos listeros.
Estoy teniendo "problemas" al utilizar el contrib/tablefunc (crosstab).
Resulta que estoy haciendo algo de este estilo:
SELECT *
FROM public.crosstab
('SELECT id_tercero, id_parte, SUM(cantidad_dtransac)
FROM tabla1 JOIN tabla2 ...
WHERE cond1 AND cond2 ...
GROUP BY id_tercero, id_parte
ORDER BY 1,2')
AS (id_tercero int4, cat1 real, cat2 real, cat3 real, cat4 real, cat5 real, cat6 real, cat7 real, cat8 real, cat9 real, cat10 real, cat11 real, cat12 real)
y efectivamente me genera un crosstab, pero no es lo que yo esperaría ya que en el valor de cada categoria no queda necesariamente el valor que corresponde con la categoria sino con el valor que queda por orden de aparición.
Por ejemplo, si el select interno me devuelve:
id_tercero id_parte suma
1 1 100
1 2 200
1 4 400
2 1 100
2 3 300
2 5 500
El crosstab que me esta generando es:
id_tercero cat1 cat2 cat3
1 100 200 400
2 100 300 500
como ven cada valor simplemente ocupa el que le corresponde según el orden de aparición. Yo esperaría que el crosstab generado fuese:
id_tercero cat1 cat2 cat3 cat4 cat5
1 100 200 400 0 0
2 100 0 0 300 500
Esta mal mi razonamiento es que el crosstab funciona así?
Qué se les ocurre para solucionarlo?
Atentamente,
RAUL DUQUE
Bogotá, Colombia
From | Date | Subject | |
---|---|---|---|
Next Message | Raúl Andrés Duque | 2007-01-05 04:18:39 | Re: Problemas con crosstab |
Previous Message | Alexander Giraldo | 2007-01-05 03:09:25 | Re: proteger archivo PGPASS.CONF |