On 01/10/2013 11:41, Osvaldo Kussama wrote:
Em 01/10/13, Thiago<zan...@farmaponte.com.br> 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

Osvaldo, boa tarde.

Mas em alguns casos a minha tabela tb_venda vai estar vazia, neste caso não está trazendo nenhum registro da tabela tb_meta.

Gostaria de trazer todos os registros da tb_meta tendo a tb_venda como tabela da "esquerda".

No exemplo que dei, tenho 2 registros em cada tabela, mas no caso de não ter nada na tabela tb_venda (esquerda/principal) não está trazendo nada da tb_meta (direita).


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

Reply via email to