Ver Mensaje Individual
  #11  
Antiguo 07-04-2011
Avatar de fjcg02
[fjcg02] fjcg02 is offline
Miembro Premium
 
Registrado: dic 2003
Ubicación: Zamudio
Posts: 1.410
Reputación: 22
fjcg02 Va camino a la fama
Pongamos luz en el asunto...

Espero que tengas algo de destreza.

Ejecuta la sentencia para que te cree la procedure CREARPIVOTE

Una vez tengas creado el procedimiento, llama al mismo con estos parámetros ( ten en cuenta que estoy suponiendo algunas cosas )


CREARPIVOTE ( 'TUTABLA','IDEMPLEADO','CONCEPTOS','MONTO','CONDICIONES')

TUTABLA será la tabla + las inner joins de todas las tablas que intervienen
IDEMPLEADO es el campo por el que quieres agrupar las filas
CONCEPTOS es el campo que quieres que pase de filas a columnas. No debiera haber demasiados conceptos en la tabla.
MONTO es el campo que quieres sumar por cada CONCEPTO ( El procedimiento sólo suma )
CONDICIONES filtro que aplica si procede Fecha desde hasta, ...

el resultado es una cadena con la query generada. Será algo del tipo...

Código SQL [-]
Select IDEMPLEADO,
sum(Case when Campo = 'x1', MONTO else 0 end as x1,
sum(Case when Campo = 'x2', MONTO else 0 end as x2,
sum(Case when Campo = 'x3', MONTO else 0 end as x3,
sum(Case when Campo = 'x4', MONTO else 0 end as x4,
...
from TUTABLA
WHERE CONDICIONES

...que es lo que propone oscarac, lo que pasa es que es automático, y no debes saber el nº de columnas de antemano.

Luego copias esa select y la ejecutas en el ibexpert o en editor que utilices.

Ya nos dirás.

Saludos
__________________
Cuando los grillos cantan, es que es de noche - viejo proverbio chino -
Responder Con Cita