Usuário com melhor resposta
Ajuda com uma consulta

Pergunta
-
Amigos, estou com dificuldades para criar uma consulta com uma tabela, poderiam me ajudar.
Tenho uma tabela chamada TABELA_TIMES, gostaria de fazer uma consulta para retornar uns valores consolidados e mais amigavel para visualizar.
Achei que a melhor forma de explicar seria postando a imagem, na imagem coloquei a minha tabela e a consulta que to tentando.
Desde já agradeço a ajuda.
- Editado Starcker segunda-feira, 17 de março de 2014 16:44
Respostas
-
Estou sem ambiente para teste, mas acho que pode lhe ajudar:
declare @time table (times varchar(max), ano int, mes int, repasse float) insert into @time values ('sao paulo', 2011,1,10) insert into @time values ('sao paulo', 2011,2,20) insert into @time values ('sao paulo', 2011,3,30) insert into @time values ('sao paulo', 2012,1,10) insert into @time values ('sao paulo', 2012,2,20) insert into @time values ('sao paulo', 2012,3,30) insert into @time values ('santos', 2011,1,10) insert into @time values ('santos', 2011,2,10) insert into @time values ('santos', 2011,3,10) insert into @time values ('santos', 2012,1,10) insert into @time values ('santos', 2012,2,10) insert into @time values ('santos', 2012,3,10) insert into @time values ('palmeiras', 2011,1,10) insert into @time values ('palmeiras', 2011,2,10) insert into @time values ('palmeiras', 2011,3,10) insert into @time values ('palmeiras', 2012,1,10) insert into @time values ('palmeiras', 2012,2,10) insert into @time values ('palmeiras', 2012,3,10) select times , sum(jan) as jan , sum(fev)as fev , sum(mar)as mar , sum(abr)as abr , sum(mai)as mai , sum(jun)as jun from ( Select times , [1] as Jan , [2] as Fev , [3] as Mar , [4] as Abr , [5] as Mai , [6] as Jun from @time pivot (sum(repasse) for mes in ([1],[2],[3],[4], [5], [6])) p ) a group by times
Caso não de certo, procure por PIVOT, que um dos agregadores dele vai lhe ajudar.
[]´s
- Sugerido como Resposta Lucas_Santos segunda-feira, 17 de março de 2014 17:19
- Marcado como Resposta Starcker segunda-feira, 17 de março de 2014 21:06
Todas as Respostas
-
-
-
-
Estou sem ambiente para teste, mas acho que pode lhe ajudar:
declare @time table (times varchar(max), ano int, mes int, repasse float) insert into @time values ('sao paulo', 2011,1,10) insert into @time values ('sao paulo', 2011,2,20) insert into @time values ('sao paulo', 2011,3,30) insert into @time values ('sao paulo', 2012,1,10) insert into @time values ('sao paulo', 2012,2,20) insert into @time values ('sao paulo', 2012,3,30) insert into @time values ('santos', 2011,1,10) insert into @time values ('santos', 2011,2,10) insert into @time values ('santos', 2011,3,10) insert into @time values ('santos', 2012,1,10) insert into @time values ('santos', 2012,2,10) insert into @time values ('santos', 2012,3,10) insert into @time values ('palmeiras', 2011,1,10) insert into @time values ('palmeiras', 2011,2,10) insert into @time values ('palmeiras', 2011,3,10) insert into @time values ('palmeiras', 2012,1,10) insert into @time values ('palmeiras', 2012,2,10) insert into @time values ('palmeiras', 2012,3,10) select times , sum(jan) as jan , sum(fev)as fev , sum(mar)as mar , sum(abr)as abr , sum(mai)as mai , sum(jun)as jun from ( Select times , [1] as Jan , [2] as Fev , [3] as Mar , [4] as Abr , [5] as Mai , [6] as Jun from @time pivot (sum(repasse) for mes in ([1],[2],[3],[4], [5], [6])) p ) a group by times
Caso não de certo, procure por PIVOT, que um dos agregadores dele vai lhe ajudar.
[]´s
- Sugerido como Resposta Lucas_Santos segunda-feira, 17 de março de 2014 17:19
- Marcado como Resposta Starcker segunda-feira, 17 de março de 2014 21:06
-
-
-
-
-