Problemas con crosstab

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

In response to

Browse pgsql-es-ayuda by date

  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