Se ha denunciado esta presentación.
Utilizamos tu perfil de LinkedIn y tus datos de actividad para personalizar los anuncios y mostrarte publicidad más relevante. Puedes cambiar tus preferencias de publicidad en cualquier momento.
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas  Para entender el concepto de               CrossTable1  tablas cruzadas,...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas     CrossTable1     Prenda     Color    Cantidad     Camisa     Blanco   ...
Sistemas de Base de Datos 4.1.7.- Tablas CruzadasCrossTable1Prenda     Color    CantidadCamisa     Blanco               5C...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…   Paso 1.- Supongamos que ya se tiene la siguiente tabla:            Cro...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…select Prenda,       "Blanco" = case when Color = Blanco then Cantidad el...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…Paso 2.- Totalizar cada columna, considerando la prenda          como cri...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…Algoritmo genérico en un solo paso. select Prenda,    "Blanco" = sum(case...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas…   En este tipo de tablas cruzadas no se conoce de   antemano e...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… -- Generar tabla temporal con solo Color  select distinct cast...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… set @TextoSQL = SELECT Prenda   while @Colores <>   begin    -...
Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas…  set @TextoSQL = @TextoSQL +  FROM CrossTable1 GROUP BY Prenda...
Ha terminado este documento.
Descárguela y léala sin conexión.
Próximo SlideShare
Bob knowlton case analysis
Siguiente
  • Sé el primero en recomendar esto

Cross table

  1. 1. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Para entender el concepto de CrossTable1 tablas cruzadas, veamos el Prenda Color Cantidad siguiente ejemplo: Camisa Blanco 5 Camisa Oscuro 13 Camisa Pastel 12 Chompa Blanco 6 Supongamos que se desea Chompa Claro 9 Analizar las ventas por tipo de Chompa Oscuro 11 prenda y color. Chompa Pastel 2 Pantalon Claro 1 Pantalon Oscuro 21 En un proceso previo se obtuvo Pantalon Pastel 7 la siguiente tabla. Polo Blanco 3 Polo Claro 8 Polo Oscuro 1 DAI - Ing. Arturo Rozas Huacho 1
  2. 2. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas CrossTable1 Prenda Color Cantidad Camisa Blanco 5 Camisa Oscuro 13 Camisa Pastel 12 Chompa Blanco 6 Atributos de Medición Chompa Claro 9 Chompa Oscuro 11 Chompa Pastel 2 Pantalon Claro 1 Atributos de Dimensión Pantalon Oscuro 21 Pantalon Pastel 7 Polo Blanco 3 Polo Claro 8 Polo Oscuro 1 DAI - Ing. Arturo Rozas Huacho 2
  3. 3. Sistemas de Base de Datos 4.1.7.- Tablas CruzadasCrossTable1Prenda Color CantidadCamisa Blanco 5Camisa Oscuro 13Camisa Pastel 12Chompa Blanco 6Chompa Claro 9Chompa Oscuro 11 Prenda Blanco Claro Oscuro PastelChompa Pastel 2 Camisa 5 0 13 12Pantalon Claro 1 Chompa 6 9 11 2Pantalon Oscuro 21 Pantalon 0 1 21 7Pantalon Pastel 7 Polo 3 8 1 0Polo Blanco 3Polo Claro 8Polo Oscuro 1 Los valores del atributo de la dimensión Color se utilizan como columnas en la nueva tabla. Este tipo de resúmenes es el primer nivel de análisis de la información y es una necesidad frecuente en el apoyo a la toma de decisiones. DAI - Ing. Arturo Rozas Huacho 3
  4. 4. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas… Paso 1.- Supongamos que ya se tiene la siguiente tabla: CrossTable1 (Prenda, Color, Cantidad) A partir de ésta, generar una tabla temporal con las siguientes Columnas: Resultado(Prenda, Blanco, Claro, Oscuro) select Prenda, "Blanco" = case when Color = Blanco then Cantidad else 0 end, "Claro" = case when Color = Claro then Cantidad else 0 end, "Oscuro" = case when Color = Oscuro then Cantidad else 0 end into #Prenda from CrossTable1 DAI - Ing. Arturo Rozas Huacho 4
  5. 5. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…select Prenda, "Blanco" = case when Color = Blanco then Cantidad else 0 end, "Claro" = case when Color = Claro then Cantidad else 0 end, "Oscuro" = case when Color = Oscuro then Cantidad else 0 end into #Prenda from CrossTable1CrossTable1 #PrendaPrenda Color Cantidad Prenda Blanco Claro OscuroCamisa Blanco 5 Camisa 5 0 0Camisa Oscuro 13 Camisa 0 0 13Camisa Pastel 12 Camisa 0 0 0Chompa Blanco 6 Chompa 6 0 0Chompa Claro 9 Chompa 0 9 0Chompa Oscuro 11 Chompa 0 0 11Chompa Pastel 2 Chompa 0 0 0Pantalon Claro 1 Pantalon 0 1 0Pantalon Oscuro 21 Pantalon 0 0 21Pantalon Pastel 7 Pantalon 0 0 0Polo Blanco 3 Polo 3 0 0Polo Claro 8 Polo 0 8 0Polo Oscuro 1 Polo 0 0 1 DAI - Ing. Arturo Rozas Huacho 5
  6. 6. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…Paso 2.- Totalizar cada columna, considerando la prenda como criterio de grupo. select Prenda, "Blanco" = sum(Blanco), "Claro" = sum(Claro), "Oscuro" = sum(Oscuro) from #Prenda group by Prenda#PrendaPrenda Blanco Claro OscuroCamisa 5 0 0Camisa 0 0 13Camisa 0 0 0 ResultadoChompa 6 0 0 Prenda Blanco Claro OscuroChompa 0 9 0 Camisa 5 0 13Chompa 0 0 11 Chompa 6 9 11Chompa 0 0 0 Pantalon 0 1 21Pantalon 0 1 0 Polo 3 8 1Pantalon 0 0 21Pantalon 0 0 0Polo 3 0 0Polo 0 8 0Polo 0 0 1 DAI - Ing. Arturo Rozas Huacho 6
  7. 7. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas…Algoritmo genérico en un solo paso. select Prenda, "Blanco" = sum(case when Color = Blanco then Cantidad else 0 end), "Claro" = sum(case when Color = Claro then Cantidad else 0 end), "Oscuro" = sum(case when Color = Oscuro then Cantidad else 0 end) from CrossTable1 group by Prenda CrossTable1 Prenda Color Cantidad Camisa Blanco 5 Camisa Oscuro 13 Camisa Pastel 12 Chompa Blanco 6 Resultado Chompa Claro 9 Prenda Blanco Claro Oscuro Chompa Oscuro 11 Camisa 5 0 13 Chompa Pastel 2 Chompa 6 9 11 Pantalon Claro 1 Pantalon 0 1 21 Pantalon Oscuro 21 Polo 3 8 1 Pantalon Pastel 7 Polo Blanco 3 Polo Claro 8 Polo Oscuro 1 DAI - Ing. Arturo Rozas Huacho 7
  8. 8. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… En este tipo de tablas cruzadas no se conoce de antemano el número de columnas. En consecuencia no se puede aplicar el algoritmo anterior. CrossTable1 Prenda Color Cantidad Camisa Blanco 5 Por ejemplo, de la anterior tabla Camisa Oscuro 13 se desea analizar las unidades Camisa Pastel 12 Vendidas de todos los tipos de Chompa Blanco 6 Chompa Claro 9 Prenda y de todos los colores. Chompa Oscuro 11 Chompa Pastel 2 Pantalon Claro 1 Prenda Blanco Claro Oscuro Pastel Pantalon Oscuro 21 Camisa 5 0 13 12 Pantalon Pastel 7 Chompa 6 9 11 2 Polo Blanco 3 Pantalon 0 1 21 7 Polo Claro 8 Polo 3 8 1 0 Polo Oscuro 1 DAI - Ing. Arturo Rozas Huacho 8
  9. 9. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… -- Generar tabla temporal con solo Color select distinct cast(Color as varchar(2000)) Color into #Color from CrossTable1 order by Color; -- Concatenar los Colores en la variable @Colores declare @Colores varchar(2000); set @Colores = ; update #Color set @Colores = Color = @Colores+,+Color; -- Quitar primera coma set @Colores = SubString(@Colores,2,2000); -- Construir sentencia SQL que permita generar el Cross Table declare @TextoSQL varchar(2000); declare @Posicion int; declare @Color varchar(12); DAI - Ing. Arturo Rozas Huacho 9
  10. 10. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… set @TextoSQL = SELECT Prenda while @Colores <> begin -- Extraer Color set @Posicion = CharIndex(,,@Colores); if @Posicion > 0 begin set @Color = SubString(@Colores,1,@Posicion-1); set @Colores = SubString(@Colores,@Posicion+1,2000); end else begin set @Color = @Colores; set @Colores = ; end; -- Crear sentencia SQL para Color set @TextoSQL = @TextoSQL + ,"+@Color+"=SUM(case when Color = +@Color+ then Cantidad else end); end; -- while DAI - Ing. Arturo Rozas Huacho 10
  11. 11. Sistemas de Base de Datos4.1.7.- Tablas Cruzadas Dinámicas… set @TextoSQL = @TextoSQL + FROM CrossTable1 GROUP BY Prenda; -- Ejecutar SQL exec(@TextoSQL) El contenido de la variable @TextoSQL es: select Prenda, "Blanco" = sum(case when Color = Blanco then Cantidad else 0 end), "Claro" = sum(case when Color = Claro then Cantidad else 0 end), "Oscuro" = sum(case when Color = Oscuro then Cantidad else 0 end) from CrossTable1 group by Prenda DAI - Ing. Arturo Rozas Huacho 11

Vistas

Total de vistas

391

En Slideshare

0

De embebidos

0

Número de embebidos

3

Acciones

Descargas

23

Compartidos

0

Comentarios

0

Me gusta

0

×