| 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: | Whole Thread | Raw Message | 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 |