Usuário com melhor resposta
Transformar Linha em Coluna

Pergunta
-
Boa Tarde, tenho uma view que me traz os seguintes registros
SELECT TOP (100) PERCENT YEAR(DATA_FATURAMENTO) AS ANO, MONTH(DATA_FATURAMENTO) AS MES, NOME_PROFISSIONAL, COD_PROCEDIMENTO,
SUM(QUANTIDADE) AS TOTAL
FROM dbo.FATURAMENTO_LANCAMENTOS
GROUP BY YEAR(DATA_FATURAMENTO), MONTH(DATA_FATURAMENTO), NOME_PROFISSIONAL, COD_PROCEDIMENTO
ORDER BY ANO, MES, NOME_PROFISSIONAL, COD_PROCEDIMENTOresultado:
NOME_PROFISSIONAL PROCEDIMENTO TOTAL MES ANO
DIOGO 0301010064 30 7 2009
DIOGO 0301010064 20 8 2009
FERNANDO 0301010064 6 7 2009FERNANDO 0301010064 6 8 2009
GABRIEL 0301010064 10 9 2009
GABRIEL 0301010064 6 7 2009
Preciso que os meses saia em coluna
NOME MES 7 MES 8
DIOGO 30 7
FERNANDO 6 8GABRIEL 6
OBS..: Nao posso usar pivot table e tem q trazer listar todos os profissionais da view
- Movido Gustavo Maia Aguiar sexta-feira, 21 de maio de 2010 19:11 (De:SQL Server - Desenvolvimento Geral)
Respostas
-
Diogo, então segue mais um exemplo.
SELECT x.Nome_Profissional, MES_7 = SUM(CASE x.MES WHEN 7 THEN x.TOTAL ELSE 0 END), MES_8 = SUM(CASE x.MES WHEN 8 THEN x.TOTAL ELSE 0 END), MES_9 = SUM(CASE x.MES WHEN 9 THEN x.TOTAL ELSE 0 END) FROM ( SELECT YEAR(DATA_FATURAMENTO) AS ANO, MONTH(DATA_FATURAMENTO) AS MES, NOME_PROFISSIONAL , COD_PROCEDIMENTO , SUM(QUANTIDADE) AS TOTAL FROM dbo.FATURAMENTO_LANCAMENTOS GROUP BY YEAR(DATA_FATURAMENTO), MONTH(DATA_FATURAMENTO), NOME_PROFISSIONAL, COD_PROCEDIMENTO ) AS x ORDER BY x.Nome_Profissional
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta Diogo Munarin sexta-feira, 21 de maio de 2010 20:04
Todas as Respostas
-
Diogo boa tarde, nesse caso eu te recomendo utilizar um pivot dinâmico,
no link abaixo postei um exemplo.
http://social.msdn.microsoft.com/Forums/pt-BR/520/thread/ed0cfa0b-2719-4965-a4da-e426f04ffb74
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino -
-
Diogo, então segue mais um exemplo.
SELECT x.Nome_Profissional, MES_7 = SUM(CASE x.MES WHEN 7 THEN x.TOTAL ELSE 0 END), MES_8 = SUM(CASE x.MES WHEN 8 THEN x.TOTAL ELSE 0 END), MES_9 = SUM(CASE x.MES WHEN 9 THEN x.TOTAL ELSE 0 END) FROM ( SELECT YEAR(DATA_FATURAMENTO) AS ANO, MONTH(DATA_FATURAMENTO) AS MES, NOME_PROFISSIONAL , COD_PROCEDIMENTO , SUM(QUANTIDADE) AS TOTAL FROM dbo.FATURAMENTO_LANCAMENTOS GROUP BY YEAR(DATA_FATURAMENTO), MONTH(DATA_FATURAMENTO), NOME_PROFISSIONAL, COD_PROCEDIMENTO ) AS x ORDER BY x.Nome_Profissional
Se a minha ajuda lhe for útil não esqueça de classificar. Att. Leonardo Marcelino- Marcado como Resposta Diogo Munarin sexta-feira, 21 de maio de 2010 20:04
-
-