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

Responder a