Top Ad unit 728 × 90

Recientes

recent

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 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



Saludos Imperio, un abrazo a la distancia!.
Tablas de Referencia Cruzada Pivot - Bases de Datos en Microsoft Sql Server 2014 (35-35) Reviewed by IncanatoIt-ad on 16:58 Rating: 5

4 comentarios:

  1. 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.

    ResponderEliminar
  2. Hola 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.

    ResponderEliminar
    Respuestas
    1. Muchas gracias por la observación voy a implementarlo de esa manera, saludos cordiales desde Perú.

      Eliminar
  3. Este comentario ha sido eliminado por el autor.

    ResponderEliminar

Todos los derechos reservados www.IncanatoIT.com - Desarrollando Software © 2014 - 2019
Desarrollado por Blogger, Designed by Sweetheme
IncanatoIt.com. Con la tecnología de Blogger.
y>