Tablas de Referencia Cruzada Pivot - Bases de Datos en Microsoft Sql Server 2014 (35-35)
Buen día amigos de IncanatoIt, finalizamos este curso de base de datos en Microsoft Sql Server 2014, en este artículo trabajaremos con el uso de tablas de referencia cruzada utilizando la función PIVOT.
Puedes descargar el Material del Curso desde, Archivos del Curso, Backup y Presentaciones:
Tabla Pasajero - País - Pago
--Seleccionamos todos los registros de la tabla
Tabla de referencia Cruzada - Función Pivot (35-35) Bases de Datos en Microsoft Sql Server 2014
Saludos Imperio, un abrazo a la distancia!.
Puedes seguir el curso Completo desde:
Puedes descargar el Material del Curso desde, Archivos del Curso, Backup y Presentaciones:
Tablas de Referencia cruzada - Función PIVOT
PIVOT gira una expresión con valores de tabla convirtiendo los valores únicos de una columna de la expresión en varias columnas en la salida y realiza agregaciones donde son necesarias en cualquier valor de columna restante que se desee en la salida final.
Ejemplos:
Ejemplo 1:
Mostrar los pagos realizados por los pasajeros, pero ordenar los pagos por meses.
Pasajero
|
Enero
|
Febrero
|
Marzo
|
Abril
|
Pasajero 01
|
100
|
0
|
154
|
0
|
Pasajero 02
|
0
|
300
|
0
|
170
|
Pasajero 03
|
150
|
0
|
500
|
0
|
Tabla Pasajero - País - Pago
--Seleccionamos todos los registros de la tabla
--de
referencia cruzada
select
Pasajero,
case when
Enero Is not null then Enero else 0 end as Enero,
case when Febrero Is not null then Febrero else 0 end as Febrero,
case when Marzo Is not null then Marzo else 0 end as Marzo,
case when Abril Is not null then Abril else 0 end as Abril,
case when Mayo Is not null then Mayo else 0 end as Mayo,
case when Junio Is not null then Junio else 0 end as Junio,
case when Julio Is not null then Julio else 0 end as Julio,
case when Agosto Is not null then Agosto else 0 end as Agosto,
case when Setiembre Is not null then Setiembre else 0 end as Setiembre,
case when Octubre Is not null then Octubre else 0 end as Octubre,
case when Noviembre Is not null then Noviembre else 0 end as Noviembre,
case when Diciembre Is not null then Diciembre else 0 end as Diciembre
from
(
select pas.apaterno as Pasajero,
datename(month,pag.fecha) as Mes
,SUM(pag.monto) as Total
from pago pag
inner join
pasajero pas
on pag.idpasajero=pas.idpasajero
group by pas.apaterno,
datename(month,pag.fecha)
) T
PIVOT (SUM(T.Total) FOR T.Mes IN ([Enero],[Febrero],[Marzo]
,[Abril],[Mayo],[Junio],[Julio],[Agosto],[Setiembre],
[Octubre],[Noviembre],[Diciembre]))PVT
go
Tabla de referencia Cruzada - Función Pivot (35-35) Bases de Datos en Microsoft Sql Server 2014
Tablas de Referencia Cruzada Pivot - Bases de Datos en Microsoft Sql Server 2014 (35-35)
Reviewed by IncanatoIt-ad
on
16:58
Rating:
Saludos Ingeneiro, primero en felicitarte por tu gran trayectoria, espero llegues muy lejos, mi nombre Carlos Valenzuela, y bueno actualmemte llevo una carrera de ing empresarial y de sistemas y recien llevo cursos sobre diagramas UML, pero en mis tiempo libre me dedico a aprender a programar, bueno al grano, queria consultarte, que tipo de dato es recomendable colocar a un campo que va a ser llave primaria en este caso en un "ID_Cliente", estoy aprendiendo a desarrolar en asp.net con C#, para un formulario Web, saludos y gracias nuevamente.
ResponderEliminarHola Juan Gracias por el vídeo, quería comentarte que es posible generar las columnas de forma dinámica para no tener que escribirlas entre corchetes utilizando un procedimiento almacenado donde le enviemos parámetros y que nos sirva como utilidad para generar diferentes Tablas de Referencias Cruzadas de forma rápida.
ResponderEliminarMuchas gracias por la observación voy a implementarlo de esa manera, saludos cordiales desde Perú.
EliminarEste comentario ha sido eliminado por el autor.
ResponderEliminar