..:: Rodrigo (-_-) Machado ::.. wrote:
> Bom dia pessoal, nao sei se posso postar este tipo de topico na lista, 
> mas ca estou eu.
> Sou bem iniciando no mundo SQL, e preciso otimizar esta consulta.
>
> select c_cpd, sum(n_cant) from (                     
>     select c_cpd, sum(n_cant) as n_cant from movie
>         where c_sucursal>='001' and c_sucursal<='001'
>         group by c_cpd
>     union all
>     select c_cpd, sum(n_cant)*-1 as n_cant from movis
>         where c_sucursal>='001' and c_sucursal<='001'
>         group by c_cpd
> ) as movi
> group by c_cpd
> order by c_cpd
Não sei se entendi direito, mas ai vai uma dica:

    select movie.c_cpd, sum(movie.n_cant + (movis.n_cant)*-1) as n_cant 
from movie
       JOIN movis ON (movis.c_cpd = movie.c_cpd)
        where movie.c_sucursal>='001' and movie.c_sucursal<='001'
        group by movie.c_cpd

Apenas é necessário validar se o join que montei é valido para seu 
escopo, olhando a estrutura do seu select acredito que seja.
Isso fica bem mais rapido e bem mais simples.

Evandro
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a