domingo, 26 de abril de 2009

Totalizando valores com o comando COMPUTE BY

Hoje veremos como totalizar dados com o comando COMPUTE BY. Este comando permite realizar totalização de dados em subsets, anexos aos sets de dados principais.

Esta funcionalidade não será tão útil para desenvolvimento de novas soluções, porém pode ajudar muito para os profissionais da área que estão debugando ou analisando dados relacionais.

Primeiro, vamos criar uma tabela temporária com dados fictícios para implementar o nosso exemplo:

create table #temp(
uf varchar(2),
valor numeric(10,2),
data datetime
)

insert into #temp (UF,VALOR,DATA) values ('SC',100.32,'2008-04-26 13:56:34.950')
insert into #temp (UF,VALOR,DATA) values ('SC',230.32,'2008-03-26 13:56:34.950')
insert into #temp (UF,VALOR,DATA) values ('SP',450.32,'2008-02-26 13:56:34.950')
insert into #temp (UF,VALOR,DATA) values ('SP',670.32,'2008-06-26 13:56:34.950')
insert into #temp (UF,VALOR,DATA) values ('MG',780.32,'2008-08-26 13:56:34.950')
insert into #temp (UF,VALOR,DATA) values ('MG',980.32,'2008-02-26 13:56:34.950')


Se utilizarmos o comando select * from #temp order by uf, os dados serão apresentados assim:



Com o comando COMPUTE BY, podemos visualizar o total de cada estado, e ainda obter a visualização detalhada dos dados. Vamos executar o seguinte script agora:

select * from #temp
order by uf
compute sum(valor) by uf


O resultado, deve ser igual a imagem abaixo:



Até a próxima!

Nenhum comentário:

Postar um comentário

Leave your comment here!