crosstab de tablefunc no da los datos deseados

From: "Ignacio Ayala Leal" <ignacioal_3(at)hotmail(dot)com>
To: pgsql-es-ayuda(at)postgresql(dot)org
Subject: crosstab de tablefunc no da los datos deseados
Date: 2007-02-23 03:28:34
Message-ID: BAY116-F13A66BBCD990725B83343CA8E0@phx.gbl
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Que tal Listeros.

Que tal Listeros.

Tengo un problema con el crosstab de tablefunc.

Deseo conocer las ventas por mes de los clientes en una tabla como la
siguiente
cliente enero febrero marzo abril Mayo... diciembre
Luis 25.5 26.3 10.12 12.30 17.5
Juan 28.5 45.5 11.24 23.89 59.5
tengo una vista llamada cte que me da los totales por cliente mes e importe

Creo el tipo de dato:
CREATE TYPE meses AS (
cliente text,
enero float,
febrero float,
marzo float,
abril float,
mayo float
.
Diciembre float
);

luego la funcion

CREATE OR REPLACE FUNCTION crosstab_reporte(text) RETURNS SETOF meses AS
'$libdir/tablefunc', 'crosstab' LANGUAGE 'c' STABLE STRICT;

hago la consulta select * from crosstab_reporte('select cliente,mes,importe
from cte order by 1,2;')

El problema es que si algun cliente no se le vendio en un mes, el crosstab
mueve los importes de los siguientes meses hacia la columna de la izquierda
Por ejemplo al cliente Luis no se le vendio en el mes de enero, al cliente
Juan en el mes de marzo y el resultado al realizar el proceso anterior es
cliente enero febrero marzo abril Mayo... diciembre
Luis 25.5 26.3 10.12 12.30 17.5
Juan 28.5 45.5 11.24 23.89 59.5
Comparando este resultado con la tabla de arriba el resultado no es
correcto.
Alguien me puede decir si lo que realice esta mal o si existe alguna otra
herramienta que me de los reultados correctos
Ya que al revizar la documentacion del contrib en el ejemplo de crosstab3
selecciona las categorias att2 y att3 pero el resultado lo coloca en la
primer columna.
De antemano gracias

_________________________________________________________________
Llamadas gratis de PC a PC con Windows Live Messenger en Prodigy/MSN
www.prodigy.msn.com

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message fabian olmos 2007-02-23 03:33:29 CALCULO DE HORAS AL DIA
Previous Message Carlos Steinhilber 2007-02-23 02:41:13 Conectar C# con Postgres