On 01/10/2013 13:49, JotaComm wrote:
Opa,
Em 1 de outubro de 2013 12:37, Thiago <zan...@farmaponte.com.br
<mailto:zan...@farmaponte.com.br>> escreveu:
On 01/10/2013 11:10, JotaComm wrote:
Opa,
Em 1 de outubro de 2013 10:50, Thiago
<zan...@farmaponte.com.br
<mailto:zan...@farmaponte.com.br>
<mailto:zan...@farmaponte.com.__br
<mailto: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
Não conseguei entender exatamente o que você quer: Por que a
loja 1 não
deve aparecer no resultado? Pelo que vi aparecem somente os
registros da
tabela tb_meta.
Obrigado pela ajuda.
___________________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.____org.br
<http://org.br>
<mailto:pgbr-geral@listas.__postgresql.org.br
<mailto:pgbr-geral@listas.postgresql.org.br>>
https://listas.postgresql.org.____br/cgi-bin/mailman/listinfo/____pgbr-geral
<https://listas.postgresql.__org.br/cgi-bin/mailman/__listinfo/pgbr-geral
<https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>>
Abraços
--
JotaComm
http://jotacomm..wordpress.com <http://jotacomm.wordpress.com>
JotaComm, boa tarde.
Eu questionei no caso de tabela tb_venda estar vazia, como faria
para trazer os registros da tb_meta. Como se eu tivesse a seguinte
estrutura:
tb_venda
loja venda
tb_meta
loja meta
2 40
3 60
Preciso ter o resultado abaixo utilizando a tabela tb_venda como
esquerda (principal).
loja venda meta
2 0 40
3 0 60
Acontece que em determinados momentos a mesma pode estar vazia e
neste caso não está trazendo as metas.
Ainda não consegui entender (Confuso ainda): Por exemplo, na tabela
tb_venda não tem o código 3, porém você quer que apareça no resultado,
logo se você usar a tabela tb_venda como principal isso não vai
acontecer (LEFT OUTER JOIN).
Existem alguma relação entre a coluna meta de tb_meta e a coluna venda
de tb_venda. Algo como se o valor de meta (tb_meta) for maior ou igual a
venda (tb_venda)?
Obrigado!
_________________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.__org.br
<mailto:pgbr-geral@listas.postgresql.org.br>
https://listas.postgresql.org.__br/cgi-bin/mailman/listinfo/__pgbr-geral
<https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral>
Abraços
--
JotaComm
http://jotacomm.wordpress.com
Não, na verdade o campo de referencia é o loja. É que quando comecei a
utilizar o left outer join eu imaginei que ele traria de qualquer dos
lados, mas viajei.
Vou criar uma subconsulta com union nas tabelas antes de cruzar,
acredito ser a melhor solução. Algo como:
select tm.loja
from (
select loja from tb_venda
union all
select loja from tb_meta
) as tm
group by tm.loja
E depois utilizar o resultado disso para cruzar com as outras.
Obrigado pela ajuda.
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral