Bases de Datos - referencia cruzada

 
Vista:

referencia cruzada

Publicado por victor Manuel (2 intervenciones) el 14/05/2013 21:36:38
hola buenas.

estoy tratando de realizar una referencia cruzada para poder ver 2 tablas modo reporte, necesito me ayuden.
con esta consulta :

Select R.Id_Empleado,E.Nom_Empleado,E.Ape_Empleado,P.Puesto, T.Turno ,R.FechaTurno FROM Registros R INNER JOIN Empleados E ON R.Id_Empleado=E.Id_Empleado INNER JOIN Puestos P ON E.Id_Puesto=P.Id_Puesto INNER JOIN Turnos T ON R.Id_Turno = T.Id_Turno

muestro:


como ven en la imagen muestro los datos hacia abajo tanto turnos como fechas, y lo que busco es mostrar el id , nombre, apellido, puesto y las fechas de cabezera con los turnos debajo un turno correspondiente a su fecha.

ejemplo esta tabla que encontre en la web



y que quede como esta:



mi diagrama es



cualquier dato extra estare atte.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

referencia cruzada

Publicado por Alixandro Florian (18 intervenciones) el 22/05/2013 05:42:58
Victor, en que base de datos trabaja?

Esto es un reporte tipo matriz.

Si esta trabajando con oracle puedes hacer en report builder este reporte matricial, tambien puedes en PLsql utilizando el decode o el case. En otro caso puedes utilizar ireport o cristal report los cuales pueden interactual con diferentes bases de datos. Hace muchos años hice algo similar, e hice la matriz a puro plsql, si logro dar con el paradero de este codigo se lo hago llegar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

referencia cruzada

Publicado por victor Manuel (2 intervenciones) el 22/05/2013 13:59:49
gracias.

trabajo bajo sql server 2008.

En realidad nose si debo utilizar pivot dinamico o no, la idea es mostrar esa consulta en un grid.
me he dado vueltas por foros y no logro comprender del todo pero he intentado hacerlo por mi mismo sin resultado alguno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

referencia cruzada

Publicado por Alixandro (18 intervenciones) el 23/05/2013 01:28:05
Victor, este codio hace los que estas buscando, solo debes adaptarlo a tus tablas. este genera un reporte tipo matriz.

Select Tien.Nombre, to_char(Amck.fecha_pago,'yyyy') Anno_pago,
Sum(Case When to_char(fecha_pago,'mm') = '01' then monto_interes else 0 end) Enero,
Sum(Case When to_char(fecha_pago,'mm') = '02' then monto_interes else 0 end) Febrero,
Sum(Case When to_char(fecha_pago,'mm') = '03' then monto_interes else 0 end) Marzo,
Sum(Case When to_char(fecha_pago,'mm') = '04' then monto_interes else 0 end) Abril,
Sum(Case When to_char(fecha_pago,'mm') = '05' then monto_interes else 0 end) Mayo,
Sum(Case When to_char(fecha_pago,'mm') = '06' then monto_interes else 0 end) Junio,
Sum(Case When to_char(fecha_pago,'mm') = '07' then monto_interes else 0 end) Julio,
Sum(Case When to_char(fecha_pago,'mm') = '08' then monto_interes else 0 end) Agosto,
Sum(Case When to_char(fecha_pago,'mm') = '09' then monto_interes else 0 end) Septiembre,
Sum(Case When to_char(fecha_pago,'mm') = '10' then monto_interes else 0 end) Octubre,
Sum(Case When to_char(fecha_pago,'mm') = '11' then monto_interes else 0 end) Noviembre,
Sum(Case When to_char(fecha_pago,'mm') = '12' then monto_interes else 0 end) Diciembre
From Axxxxxxxxx amck,
Bxxxxxxxxx tien
Where Amck.empresa = Tien.Empresa
And Amck.codtienda = Tien.codtienda
And to_char(fecha_pago,'yyyy') = :P_anio
Group By Tien.Nombre , to_char(Amck.fecha_pago,'yyyy')
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar