Compreendendo a Clausula PIVOT no SQL Server 2005

· Computadores e a Internet
Autores

CREATE TABLE #TEMPS(TID INT,NOME VARCHAR(20),SOBRENOME VARCHAR(30))
CREATE TABLE #PROVS(PID INT,ENDERECO VARCHAR(20),TELEFONE VARCHAR(30))

INSERT
INTO #TEMPS VALUES(1,‘FRANCISCO’,‘BRASIL’)
INSERT INTO #PROVS VALUES(1,‘RUA: 1’,‘5551010’)
INSERT INTO #PROVS VALUES(1,‘RUA: 1’,‘5551011’)
INSERT INTO #TEMPS VALUES(2,‘LEANDRO’,‘CAMPELO’)
INSERT INTO #PROVS VALUES(2,‘RUA: 2’,‘5551110’)

SELECT
T.NOME,P.ENDERECO
FROM #TEMPS T
JOIN #PROVS P ON T.TID = P.PID
ORDER BY T.NOME

— ADICIONAR A CLAUSULA GROUP BY NA FUNÇÃO COUNT(*)
SELECT T.NOME,P.ENDERECO,COUNT(*) ‘QUANTIDADE’
FROM #TEMPS T
JOIN #PROVS P ON T.TID = P.PID
GROUP BY T.NOME,P.ENDERECO
ORDER BY T.NOME

SELECT * FROM #PROVS
PIVOT (COUNT(PID) FOR PID IN ([1],[2])) PVT
SELECT * FROM (SELECT ENDERECO,PID FROM #PROVS) P
PIVOT (COUNT(PID) FOR PID IN ([1],[2])) PVT

SELECT
ENDERECO
,
[1] as [FRANCISCO],
[2] as [LEANDRO]
FROM (SELECT ENDERECO,PID FROM #PROVS) P
PIVOT (COUNT(PID) FOR PID IN ([1],[2])) PVT

SELECT
T
.NOME,
[1] as [FRANCISCO],
[2] as [LEANDRO]
FROM (SELECT PID ‘P’,PID,ENDERECO FROM #PROVS) P
PIVOT (COUNT(PID) FOR PID IN ([1],[2])) PVT
JOIN #TEMPS T ON PVT.P = T.TID
ORDER BY T.NOME

— LIMPANDO
DROP TABLE #TEMPS,#PROVS

Links Externos:
Acesse o maior conteúdo de emoticons
Confira uma grande diversidade de papel de parede

Deixe uma Resposta

Preencha os seus detalhes abaixo ou clique num ícone para iniciar sessão:

Logótipo da WordPress.com

Está a comentar usando a sua conta WordPress.com Terminar Sessão / Alterar )

Imagem do Twitter

Está a comentar usando a sua conta Twitter Terminar Sessão / Alterar )

Facebook photo

Está a comentar usando a sua conta Facebook Terminar Sessão / Alterar )

Google+ photo

Está a comentar usando a sua conta Google+ Terminar Sessão / Alterar )

Connecting to %s

%d bloggers like this: