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|
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 |