Base De Datos

Páginas: 7 (1733 palabras) Publicado: 29 de mayo de 2012
Materia: Taller de Base de Datos

Unidad 3

Tarea #3

Profesor: Geronimo Geronimo Guadalupe
Alumno: Luis Orimar Alejandro Vargas Alonzo

No. Control 09380700

26 / 03 / 2012

PIVOT y UNPIVOT
Puede usar los operadores relacionales PIVOT y UNPIVOT para modificar una expresión con valores de tabla en otra tabla. PIVOT gira una expresión con valores de tablaconvirtiendo 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. UNPIVOT realiza la operación contraria a PIVOT girando las columnas de una expresión con valores de tabla a valores de columna.

La sintaxis que proporciona PIVOT es más sencilla y más legible quela sintaxis que se puede especificar en una serie compleja de instrucciones SELECT...CASE. Para obtener una descripción completa de la sintaxis de PIVOT, vea FROM (Transact-SQL).
A continuación, se muestra una sintaxis anotada de PIVOT.
SELECT <columna no dinamizada>,
    [primera columna dinamizada] AS <nombre de columna>,
    [segunda columna dinamizada] AS <nombre decolumna>
    [última columna dinamizada] AS <nombre de columna>
FROM
    (<la consulta SELECT que genera los datos>)
    AS <alias de la consulta de origen>
PIVOT
(
    <función de agregación>(<columna que se agrega>)
FOR
[<columna que contiene los valores que se convertirán en encabezados de columna>]
    IN ([primera columna dinamizada], [segundacolumna dinamizada]
    ... [última columna dinamizada])
) AS <alias de la tabla dinamizada>
<cláusula ORDER BY opcional>;

Ejemplo de PIVOT complejo

Un escenario habitual en el que PIVOT puede ser útil es cuando se desea generar informes de tabla cruzada para resumir datos. Por ejemplo, suponga que desea consultar la tabla PurchaseOrderHeader en la base de datos de ejemploAdventureWorks2008R2 para determinar el número de pedidos de compra colocados por ciertos empleados. En la siguiente consulta se proporciona este informe, ordenado por proveedor.

USE AdventureWorks2008R2;
GO
SELECT VendorID, [250] AS Emp1, [251] AS Emp2, [256] AS Emp3, [257] AS Emp4, [260] AS Emp5
FROM
(SELECTPurchaseOrderID, EmployeeID, VendorID
FROM Purchasing.PurchaseOrderHeader) p
PIVOT
(
COUNT (PurchaseOrderID)
FOR EmployeeID IN
( [250], [251], [256], [257], [260] )
) AS pvt
ORDER BY pvt.VendorID;

A continuación se muestra un conjunto parcial de resultados.VendorID    Emp1        Emp2        Emp3        Emp4        Emp5
1492        2           5           4           4           4
1494        2           5           4           5           4
1496        2           4           4           5           5
1498        2           5           4           4           4
1500        3           4           4           5           4

Los resultadosdevueltos por esta instrucción de subselección se dinamizan en la columna EmployeeID.
SELECT PurchaseOrderID, EmployeeID, VendorID
FROM PurchaseOrderHeader;

Esto significa que los valores únicos devueltos por la columna EmployeeID se convierten en campos del conjunto de resultados finales. Por lo tanto, hay una columna para cada número de EmployeeID especificado en la cláusula dinámica: en estecaso empleados 164, 198, 223, 231 y 233. La columna PurchaseOrderID se utiliza como columna de valores, respecto a la que se ordenan las columnas del resultado final, denominadas columnas de agrupamiento.
En este caso, las columnas de agrupamiento se agregan mediante la función COUNT. Tenga presente que aparece un mensaje de advertencia que indica que los valores NULL que aparecen en la columna...
Leer documento completo

Regístrate para leer el documento completo.

Estos documentos también te pueden resultar útiles

  • Que es una base de datos y tipos de base de datos
  • Bases de datos y usuarios de bases de datos
  • Base De Datos
  • Base De Datos
  • Base de datos
  • Base De Datos
  • Base de datos
  • Bases de datos

Conviértase en miembro formal de Buenas Tareas

INSCRÍBETE - ES GRATIS