Em 01/10/13, Thiago<[email protected]> escreveu:
> Bom dia a todos.
>
> Tenho as seguintes tabelas
>
> tb_venda
> loja venda
> 1    10
> 2    20
>
> tb_meta
> loja meta
> 2    40
> 3    60
>
> Eu precisava fazer uma consulta trazendo tudo de tudo, o que cruzar e o
> que não cruzar, para tal fiz o seguinte sql.
>
> select
>     coalesce(a.loja,b.loja) as loja,
>     coalesce(a.venda,0) as venda,
>     coalesce(b.meta,0) as meta
> from tb_venda a
> full outer join tb_meta b on a.loja = b.loja
>
> Como resultado eu teria os seguintes dados:
> loja venda meta
> 1    10    0
> 2    20    40
> 3    0     60
>
> O que fazer quando eu não tenho registros na tabela tb_venda, tenho
> apenas na tabela meta?
>
> Gostaria que viesse o seguinte resultado:
>
> loja venda meta
> 2    0     40
> 3    0     60
>
> Obrigado pela ajuda.
>


Pelo que consegui entender seria:
select
    coalesce(a.loja,b.loja) as loja,
    coalesce(a.venda,0) as venda,
    coalesce(b.meta,0) as meta
from tb_venda a
full outer join tb_meta b on a.loja = b.loja
WHERE a.loja IS NULL;

que corresponde a sua descrição mas que não corresponde a seu exemplo.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a