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 | **@lfernandortiz *
|Cúcuta|Colombia|

Responder a