Consulta Vertica a Horizontal - Funcion crosstab

From: Luis Fernando Ortiz Vera <lfernandortiz(at)gmail(dot)com>
To: "pgsql-es-ayuda(at)postgresql(dot)org" <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Consulta Vertica a Horizontal - Funcion crosstab
Date: 2014-10-21 21:56:43
Message-ID: CAPdYQQYro9vi0T4sUNgejtXvNwVPeMnK1d9FCujADhN01teVhA@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Respetada lista, recurro a ustedes por que estoy tratando de ejecutar la
función *crosstab *sobre una consulta, con el fin de obtener los resultados
de dicha consulta en horizontal. Y siempre obtengo el mismo error, he
tratado muchas cosas y nada funciona.

La consulta es la siguiente.

SELECT
diasemana.codigodia,
diasemana.nombredia,
sum(txconsolidado.totalcomision ),
sum( txconsolidado.depototalpesos),
sum( txconsolidado.totalcredito),
sum( txconsolidado.totaldebito)
FROM
diasemana,
txconsolidado
WHERE
txconsolidado.fecha = diasemana.codigodia AND
txconsolidado.documento = '16477832' AND
txconsolidado.fecha >= '13/10/2014' AND
txconsolidado.fecha <= '18/10/2014'
group by
diasemana.codigodia,
diasemana.nombredia
order by 1

El resultado obtenido es

dia nombre tx_pesos depo creditos debitos 2
Lunes 1825544,16 361968 0 2016040 3 Martes 6208610,65 1313445 0 713960 4
Miércoles 3049200 129975 0 1022880 5 Jueves 3365424 321209 0 3009310 6
Viernes 4742266,6 1633644,2 100 857768 7 Sábado 1888480 0 0 2319910

*Lo que busco...*

nombre Lunes Martes Miércoles Jueves Viernes Sábado tx_pesos
1825544 6208611 3049200 3365424 4742267 1888480 depo 361968 1313445 129975
321209 1633644 0 creditos 0 0 0 0 100 0 debitos 2016040 713960 1022880
3009310 857768 2319910

Formulando el *crosstab *función en postgrest:

select * from crosstab('
SELECT
diasemana.nombredia,
sum(txconsolidado.totalcomision ),
sum( txconsolidado.depototalpesos),
sum( txconsolidado.totalcredito),
sum( txconsolidado.totaldebito)
FROM
diasemana,
txconsolidado
WHERE
txconsolidado.dia = diasemana.codigodia AND
txconsolidado.documento = ''16477832'' AND
txconsolidado.fecha >= ''13/10/2014'' AND
txconsolidado.fecha <= ''18/10/2014''
group by
diasemana.codigodia,
diasemana.nombredia
order by 1'
)as datos(lunes varchar, martes varchar, miercoles varchar,
jueves varchar, viernes varchar, sabado varchar);

Mensaje de *ERROR *que obtengo:

*ERROR: invalid source data SQL statement*
*DETAIL: The provided SQL must return 3 columns: rowid, category, and
values.*

Apreciada lista ayudenme con esto, lo necesito para un reporte ... Gracias!!

Atentamente,

--

*Luis Fernando Ortiz Vera.*
*+Luis Fernando Ortiz Vera | **(at)lfernandortiz *
|Cúcuta|Colombia|

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Alberto Cabello Sánchez 2014-10-24 06:40:53 Re: Problemas con tabla
Previous Message Gilberto Castillo 2014-10-21 20:32:49 RE: Problemas con tabla