Em 01/10/13, Thiago<[email protected]> escreveu:
> On 01/10/2013 11:41, Osvaldo Kussama wrote:
>> 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
>
> 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).
>
Verifique se é isto que deseja:
select
b.loja as loja,
coalesce(a.venda,0) as venda,
b.meta as meta
from tb_meta b
left outer join tb_venda a on a.loja = b.loja;
Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral