não traz todos os registros

Dúvidas, dicas e truques de SQL, Select, Update, Delete, cláusulas, operações com joins, Funções em SQLs, etc
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

Seguinte turma, tenho essa query

Selecionar tudo

select   pc.reduzido
,        pc.descricao_conta
,        pl.mês
,        pl.ano
,        sum(decode(pl.tipo_lancamento, 'D', - pl.valor, pl.valor) ) saldo_previsto
,        sum(decode(lc.tipo_lancamento, 'D', - lc.valor, lc.valor) ) saldo_realizado
from     plano_de_contas     pc
,        previsao_lancamento pl full outer join lancamento_contabel lc
      on lc.reduzido = pl.reduzido
where    pc.reduzido    = pl.reduzido
and      pc.reduzido    = nvl(:pconta, pc.reduzido)
and      pl.mês         = nvl(:pmes  , pl.mês) 
and      pl.ano         = nvl(:pano  , pl.ano)
group by pc.reduzido
,        pc.descricao_conta
,        pl.mês
,        pl.ano

pc -- tem todas as contas

lc -- tem algumas contas
pl -- tem algumas contas



a query ta trazendo os registros que tenho na PL ... porem há uma conta na LC que não existe na PL mas eu quero que traga esse registro tb...



me entenderam ??
Se puderem me ajudar agradeco !!!!
Avatar do usuário
dr_gori
Moderador
Moderador
Mensagens: 5024
Registrado em: Seg, 03 Mai 2004 3:08 pm
Localização: Portland, OR USA
Contato:
Thomas F. G

Você já respondeu a dúvida de alguém hoje?
https://glufke.net/oracle/search.php?search_id=unanswered

Tenta colocar uns OUTER JOINS...

Selecionar tudo

select   pc.reduzido
,        pc.descricao_conta
,        pl.mês
,        pl.ano
,        sum(decode(pl.tipo_lancamento, 'D', - pl.valor, pl.valor) ) saldo_previsto
,        sum(decode(lc.tipo_lancamento, 'D', - lc.valor, lc.valor) ) saldo_realizado
from     plano_de_contas     pc
,        previsao_lancamento pl full outer join lancamento_contabel lc
      on lc.reduzido = pl.reduzido
where    pc.reduzido    = pl.reduzido(+)
and      pc.reduzido    = nvl(:pconta, pc.reduzido)
and      pl.mês(+)         = nvl(:pmes  , pl.mês)
and      pl.ano(+)         = nvl(:pano  , pl.ano)
group by pc.reduzido
,        pc.descricao_conta
,        pl.mês
,        pl.ano
:-o
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

Dr. Gory

como estou usando o Full outer Join no From eu não posso utilizar o mecanismo de outer join na where, ou seja continuo com o problema.

Se alguém tiver outra ideia manda ai



Voltar para Oracle !!!
schnu
Rank: Analista Pleno
Rank: Analista Pleno
Mensagens: 110
Registrado em: Ter, 24 Mai 2005 9:16 pm
Localização: Dongguan - Guangdong - China

Problema resolvdio, o meu problema é q uma das tabelas utilizava mês como number e a outra era date ... tive q fazer tratamento com to_char


Erro bobo meu !!!

Mas valeu a ajuda de todos


Voltar para Oracle !!!
Responder
  • Informação
  • Quem está online

    Usuários navegando neste fórum: Nenhum usuário registrado e 3 visitantes