http://blog.sqlauthority.com/2008/06/07/sql-server-pivot-and-unpivot-table-examples/
Nếu muốn dùng Dynamic pivot:
http://www.mssqltips.com/sqlservertip/2783/script-to-create-dynamic-pivot-queries-in-sql-server/
DECLARE @columns NVARCHAR(MAX), @sql NVARCHAR(MAX); SET @columns = N''; SELECT @columns += N', p.' + QUOTENAME(Name) FROM (SELECT p.Name FROM dbo.Products AS p INNER JOIN dbo.OrderDetails AS o ON p.ProductID = o.ProductID GROUP BY p.Name) AS x; SET @sql = N' SELECT ' + STUFF(@columns, 1, 2, '') + ' FROM ( SELECT p.Name, o.Quantity FROM dbo.Products AS p INNER JOIN dbo.OrderDetails AS o ON p.ProductID = o.ProductID ) AS j PIVOT ( SUM(Quantity) FOR Name IN (' + STUFF(REPLACE(@columns, ', p.[', ',['), 1, 1, '') + ') ) AS p;'; PRINT @sql; EXEC sp_executesql @sql;
http://www.mssqltips.com/sqlservertip/1455/using-the-case-expression-instead-of-dynamic-sql-in-sql-server/
0 comments:
Post a Comment