PIVOT . Convertendo linhas em colunas
Passo a passo para converter
Antes tínhamos que fazer malabarismos (group by, sum, count, case) para obter o resultado desejado. Agora vamos aprender o comando PIVOT, no começo pode assustar, mas após usar algumas vezes verá que é bem simples.
Vamos começar pela sintaxe:
SELECT
Create table #Atendimento
INSERT INTO #Atendimento VALUES('Contabil','Troca de Senha','2011-11-16') INSERT INTO #Atendimento VALUES('Financeiro','Dúvida','2011-12-06')
INSERT INTO #Atendimento VALUES('Financeiro','Backup','2011-12-07')
INSERT INTO #Atendimento VALUES('Financeiro','Troca de Senha','2011-12-10')
INSERT INTO #Atendimento VALUES('Financeiro','Troca de Senha','2011-12-11')
INSERT INTO #Atendimento VALUES('Financeiro','Backup','2011-11-18')
INSERT INTO #Atendimento VALUES('Financeiro','Dúvida','2011-11-20') INSERT INTO #Atendimento VALUES('Financeiro','Troca de Senha','2011-11-21')
INSERT INTO #Atendimento VALUES('Financeiro','Dúvida','2011-11-23')
GO

SELECT Area,[10] AS Outubro, [11] as Novembro, [12] as Dezembro FROM (Select Area,ID, MONTH(Data) Mes From #Atendimento) Atend PIVOT(count(ID) for Mes in ([10], [11],[12])) P ORDER BY Area

SELECT Tipo,[10] AS Outubro, [11] as Novembro, [12] as Dezembro FROM (Select Tipo,ID, MONTH(Data) Mes From #Atendimento) Atend

--Selecionando total de atendimento por Área e Tipo, separando por meses SELECT Area, Tipo,[10] AS Outubro, [11] as Novembro, [12] as Dezembro FROM (Select Area,Tipo,ID, MONTH(Data) Mes From #Atendimento) Atend PIVOT(count(ID) for Mes in ([10], [11],[12])) P ORDER BY Area, Tipo

--Apagando a tabela temporária
DROP TABLE #Atendimento
Related articles
How to call a function inside my SQL Server?
Database function function and function
How to create an SQL to do multiple inserts in one statement?
Practical examples
Short: SQL Update using begin try and begin transaction
Commit and Rollback command
Getting the last 120 months of data from my database
how to do it in SQL language?
How to create a variable to use the IN clause SELECT query SQL?
Database code part
SQL Update using Try Catch
Na prática com exemplo real
Comando SQL Update usando Try Catch
Na prática e no database
SELECT Format Date Time for many countries
It is a good tip to use day by day
Creating a SiteMap using SQL Database
Como indexar melhor meu site e links?
Transformando linhas em colunas usando SQL Server
veja como funciona
Ozimar Henrique