[firebase-br] Duvida em SQL

Vagner de Araujo vagnerdearaujo em ibest.com.br
Sex Dez 24 19:28:01 -03 2004


Emerson, recentemente postei uma resposta parecida com a que segue a baixo.
Porém gostaria de te perguntar se ao invés de fazer vários unions o que 
deixa a execução
muito mais lenta, porque não tenta um group by pelo ano e mês?
Na pior das hipóteses você poderia criar uma view que lhe retornasse um 
campo para o mês
e outro para o ano, para que você pudesse fazer a cláusula de group by.
Acredito que esta solução vai deixar a execução muto mais rápida, pois a 
medida que o banco
for ficando cheio a tua sp tem tendência a demorar um caminhão.

Vamos à resposta

case extract (month from m.dataemissao)
        when 01 then 'Janeiro'
        when 02 then 'Fevereiro'
        .
        .
        when 12 then 'Dezembro'
end as descr_mes

Vagner de Araujo
Feliz Natal e um Próspero 2.005
----- Original Message ----- 
From: "emerson carrard" <emersoncarrard em yahoo.com.br>
To: <lista em firebase.com.br>
Sent: Tuesday, December 21, 2004 9:48 AM
Subject: [firebase-br] Duvida em SQL


> Bom dia a todos,
> tenho o seguinte sql
>
> select  CAST(extract (month from m.dataemissao) AS VARCHAR(20)), 
> m.codigoproduto, m.produto,  sum(m.litros) as litros from margem m
> where extract (month from m.dataemissao) =:MES1
>  and extract (year from m.dataemissao) =:ANO1
> group by m.codigoproduto, m.produto
>
> union all
>
> select extract (month from m.dataemissao),  m.codigoproduto, m.produto, 
> sum(m.litros) as litros from margem m
> where extract (month from m.dataemissao) =:MES12
>  and extract (year from m.dataemissao) =:ANO12
> group by m.codigoproduto, m.produto
>
>
> (TEREI 12 UNION PARA OS DOZE MESES)
>
> este sql ira mostrar estatistica de litros vendido por produto nos doze 
> meses anteriores a data atual ate ai tudo bem calculo tudo certinho uma 
> vez que este select ficara dentro de uma sp selecionável, apenas gostaria 
> de acrescentar uma coluna no select que seria a coluna responsavel por me 
> mostrar o mes. Gostaria que o retorno fosse o seguinte
>
> MES           CODIGOPRODUTO          PRODUTO                     LITROS
> OUTUBRO           125                          ULTRAMO TURBO 40 
> 12.546,00
>
> Como colocar a coluna mes de acordo com a variavel posso usar um select 
> extract (...) from ...
>
> como faze-lo
>
> Agradeço desde já
>
> Carrard.
>
>
> ---------------------------------
> Yahoo! Acesso Grátis - Internet rápida e grátis. Instale o discador do 
> Yahoo! agora.
> ______________________________________________
> FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
> Para editar sua configuração na lista, use o endereço 
> http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br 





Mais detalhes sobre a lista de discussão lista