Ir al contenido principal

UnPivot Sql Server

DECLARE @Jugador TABLE 
(
Nombre VARCHAR(50),
PartidoUno INT,
PartidoDos INT,
PartidoTres INT
)

INSERT INTO @Jugador(Nombre, PartidoUno, PartidoDos, PartidoTres) VALUES ('Juan', 3, 1, 0)
INSERT INTO @Jugador(Nombre, PartidoUno, PartidoD os, PartidoTres) VALUES ('Ezequiel', 0, 1, 0)
INSERT INTO @Jugador(Nombre, PartidoUno, PartidoDos, PartidoTres) VALUES ('Sebastian', 2, 0, 0)

SELECT * FROM @Jugador


SELECT 
 Nombre, Un_Pivot.Partidos, Un_Pivot.Goles
FROM
(
 SELECT Nombre, PartidoUno, PartidoDos, PartidoTres FROM @Jugador
) Datos
UNPIVOT
(
 Goles FOR Partidos IN (PartidoUno, PartidoDos, PartidoTres)
) AS Un_Pivot



SELECT 
 Nombre, Un_Pivot.Goles
FROM
(
 SELECT Nombre, PartidoUno, PartidoDos, PartidoTres FROM @Jugador
) Datos
UNPIVOT
(
 Goles FOR Partidos IN (PartidoUno, PartidoDos, PartidoTres)
) AS Un_Pivot



Comentarios

Entradas populares de este blog

Crear Excel con C# sin librerias de Office - SpreadsheetLight

En este ejemplo se crea un archivo Excel(xlsx) con dos hojas. La libreria hay que usar es SpreadsheetLight. El codigo es de un proyecto de consola y logicamente le falta el: using SpreadsheetLight;

Cargar Archivo de texto a Sql Server con Integration Services SSIS

Script usado en el ejemplo: CREATE TABLE dbo.Personas ( idPersona INT PRIMARY KEY IDENTITY(1,1), Codigo VARCHAR(3), Nombres VARCHAR(17), Edad VARCHAR(3), Fecha VARCHAR(8), Ocupacion VARCHAR(13) ) Archivo: 001Juan Perez 02931122000Estudiante 002Juana Rosi 05301011982Profesor 003Edgar Bravo 03131121990Comerciante 004Monica Argento 04031121972Medico 005Jorge Lopez 02231121932Desocupado 006Ezequiel Bianchi 02131121987Deportista 007Pepe Argento 02731121960Actor

DataTable con C#

Crea un DataTable. Crea sus columnas, una es de tipo entero auto incremental. Carga dos registros y luego son mostrados por consola. NameSpace necesario: System.Data DataTable dt = new DataTable("Personas"); DataColumn colIdPersona = dt.Columns.Add("idPersona", typeof(Int32)); colIdPersona.AllowDBNull = false; colIdPersona.Unique = true; colIdPersona.AutoIncrement = true; colIdPersona.AutoIncrementSeed = 1; colIdPersona.AutoIncrementStep = 1; DataColumn colNombre = dt.Columns.Add("Nombre", typeof(string)); colNombre.AllowDBNull = false; dt.Columns.Add("Edad", typeof(Int16)); dt.Columns.Add("FechaNacimiento", typeof(DateTime)); dt.Rows.Add(null, "Jorge", 44, Convert.ToDateTime("31/12/1970").ToString("dd/MM/yyyy")); dt.Rows.Add(null, "Valeria", 30, Convert.ToDateTime("12/02/1986").ToString("dd/MM/yyyy")); foreach (DataRow item in dt.Rows) { Console.WriteLine(item[0])...