Microsoft: «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».
Referente a la funcion PIVOT, utilice el mismo ejemplo con la base de datos Northwind:
USE NORTHWIND
GO
SELECT * FROM
(
SELECT c.CustomerID, p.ProductName, od.quantity
FROM
Customers as c INNER JOIN Orders o on c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID INNER JOIN
Products p ON od.ProductID = p.ProductID
) AS T
PIVOT (SUM(t.quantity) FOR t.productname IN ([Spegesild],[Flotemysost],[Queso Cabrales],[Geitost])) PVT
el resultado dio lo que se necesitaba haciendo que cada producto en el listado de IN fuera su propia columna. sumando los productos que cada cliente compro.
Ahora bien, si un cliente no habia comprado nada daba como resultado NULL. Es posible utilizar una funcion como ISNULL para devolver otro valor? intente colocar ISNULL de varias maneras, pero no logre hacerlo. Quizas me podria ayudar a poder colocar esta funcion dentro de este ejemplo de query?
Referente a la funcion PIVOT, utilice el mismo ejemplo con la base de datos Northwind:
USE NORTHWIND
GO
SELECT * FROM
(
SELECT c.CustomerID, p.ProductName, od.quantity
FROM
Customers as c INNER JOIN Orders o on c.CustomerID = o.CustomerID
INNER JOIN [Order Details] od ON o.OrderID = od.OrderID INNER JOIN
Products p ON od.ProductID = p.ProductID
) AS T
PIVOT (SUM(t.quantity) FOR t.productname IN ([Spegesild],[Flotemysost],[Queso Cabrales],[Geitost])) PVT
el resultado dio lo que se necesitaba haciendo que cada producto en el listado de IN fuera su propia columna. sumando los productos que cada cliente compro.
Ahora bien, si un cliente no habia comprado nada daba como resultado NULL. Es posible utilizar una funcion como ISNULL para devolver otro valor? intente colocar ISNULL de varias maneras, pero no logre hacerlo. Quizas me podria ayudar a poder colocar esta funcion dentro de este ejemplo de query?
Gracias!
Carne 05184007
Ok, lo revisaremos en clase!
el código ejemplo esta muy bien pero lo que yo quierno que después del pivot no me sume mas bien que me envie todos los datos que existe
PIVOT (SUM(Cant) FOR producto
ejemplo
si carlos tiene bicicleta 3 y 5 quiero q me muestre el 3 y el 5 en el pivot sin que lo sume
no quiero que sume nada
lo que necesito es que si hay un producto quiero ver todas sus cantidades
gracais
reempla en COUNT EN SUM