PDA

Ver la Versión Completa : como manejan uds en Firebird 1.5 el PIVOT de oracle?? (CROSS TABS)


pvizcay
17-09-2006, 19:41:20
hola gente del foro,
estoy trabajando con Firebird 1.5 y me surgio una duda que tal vez algunos de uds. ya han tenido y solucionado.. tiene FB 1.5 algo como los CROSS TABS de SQL ??

me explico mejor tal vez con un ejemplo, tengo algo como:

CUENTA CENTRO COSTO IMPORTE
====== =========== =======
CAJA ADMINISTRACIÓN 1500$
CAJA PRODUCCION 500$
BANCO ADMINISTRACIÓN 250$
BANCO PRODUCCIÓN 150$
.. .. ..

y quiero que me lo devuelva como..

CUENTA ADMINISTRACIÓN PRODUCCIÓN
====== ============= =========
CAJA 1500$ 500$
BANCO 250$ 150$
.. .. ..

obviamente que no se de ante mano cuantos CENTROS de COSTOS distintos tengo (para seguir con el ejemplo).. osea cuantas columnas nuevas se tienen que crear..

se que esto ya esta tratado en el foro, porque estuve buscando, pero todas las soluciones derivan en
1) usar un DecisionCube de Delphi
2) el número de columnas es fija

se tb que el el PIVOT de oracle esta pensado para esto y si no estoy mal entendido el standard de SQL cuenta con un CROSS TABS para realizarlo.. ahora me resulta dificil pensar q FB no tiene algo de esto, es así??

entonces la pregunta es: como terminan trabajando los que tienen este problema en Delphi7 + IBX + FB1.5 cuando el num de columnas puede variar? (obviamente descartando escribir el código a mano lo cual me parece burdo..)

bueno grax a la gente del foro y si tienen algun comentario será apreciado
salu2 Pablo

pvizcay
19-09-2006, 04:36:51
este no era el lugar para este post? es en SQL acaso? :(

vtdeleon
19-09-2006, 06:27:15
Saludos

Chequea este hilo a ver:
http://www.clubdelphi.com/foros/showthread.php?t=16487&highlight=transform

pvizcay
19-09-2006, 17:31:16
sisi ya lo tenía visto, pero es para SQL server y la otra da una solución con código a mano, la pregunta era como lo terminan manejando uds. en Firebird con D7.. ?

muchas grax =

vtdeleon
19-09-2006, 19:17:32
Saludos

En ese mismo enlace, yo habia dado referencia a otro hilo que de seguro te puede servir (usando CASE):
http://www.clubdelphi.com/foros/showthread.php?t=17253