SELECT MP.CD_PAGAR,
MP.DT_LIQUIDACAO,
MP.VL_PARCELA,
RL.NU_LANCAMENTO_CONTABIL,
RL.NU_LOTE_CONTABIL,
RL.CD_LOJA,
RL.CD_TIPO,
LC.FL_TIPO_LANCAMENTO
FROM TB_MOV_PAGAR MP,TB_RELAC_CONTABIL RL,TB_LANCAMENTO_CONTABIL LC
WHERE MP.CD_LOTE_BANCO_PAGAR='050505' AND
MP.CD_PAGAR=RL.CD_DOCUMENTO AND
LC.NU_LOTE_CONTABIL=RL.NU_LOTE_CONTABIL AND
RL.NU_LANCAMENTO_CONTABIL=LC.NU_LANCAMENTO_CONTABIL AND
RL.NU_LOTE_CONTABIL='01010101'
DUVIDA NESTA SELECT
-
- Rank: Programador Sênior
- Mensagens: 46
- Registrado em: Sex, 23 Nov 2007 9:26 am
- Localização: porto velho -ro
PESSOAL ESSA SELECT , ELA ME TRAZ SOMENTE OS DADOS COM O FL_TIPO_LANCAMENTO='D', SENDO QUE TERIA QUE TRAZER OS TIPOS C E NÃO ESTÃO TRAZENDO. VOCÊS PODERIA ME AJUDAR?
-
- Moderador
- Mensagens: 1396
- Registrado em: Sex, 01 Fev 2008 2:06 pm
- Localização: Rio de Janeiro - RJ
- Contato:
n entendi sua dúvida brother
SELECT MP.CD_PAGAR,
MP.DT_LIQUIDACAO,
MP.VL_PARCELA,
RL.NU_LANCAMENTO_CONTABIL,
RL.NU_LOTE_CONTABIL,
RL.CD_LOJA,
RL.CD_TIPO,
LC.FL_TIPO_LANCAMENTO
FROM TB_MOV_PAGAR MP,TB_RELAC_CONTABIL RL,TB_LANCAMENTO_CONTABIL LC
WHERE MP.CD_LOTE_BANCO_PAGAR='050505' AND
MP.CD_PAGAR=RL.CD_DOCUMENTO AND
LC.NU_LOTE_CONTABIL=RL.NU_LOTE_CONTABIL AND
RL.NU_LANCAMENTO_CONTABIL=LC.NU_LANCAMENTO_CONTABIL AND
RL.NU_LOTE_CONTABIL='01010101' AND
FL_TIPO_LANCAMENTO='D' or
FL_TIPO_LANCAMENTO='C' or
FL_TIPO_LANCAMENTO='E'
-
- Rank: Programador Júnior
- Mensagens: 17
- Registrado em: Qua, 07 Jul 2010 2:53 pm
- Localização: Americana - SP
Cara, da uma olhada nesse filtro que você está usando e nas informações que você tem nas tabelas.
Verifica essas informações desses registros se tem algum tipo C.
SELECT MP.CD_PAGAR,
MP.DT_LIQUIDACAO,
MP.VL_PARCELA,
RL.NU_LANCAMENTO_CONTABIL,
RL.NU_LOTE_CONTABIL,
RL.CD_LOJA,
RL.CD_TIPO,
LC.FL_TIPO_LANCAMENTO
FROM TB_MOV_PAGAR MP,
TB_RELAC_CONTABIL RL,
TB_LANCAMENTO_CONTABIL LC
WHERE MP.CD_PAGAR = RL.CD_DOCUMENTO
AND LC.NU_LOTE_CONTABIL = RL.NU_LOTE_CONTABIL
AND RL.NU_LANCAMENTO_CONTABIL = LC.NU_LANCAMENTO_CONTABIL
AND MP.CD_LOTE_BANCO_PAGAR = '050505' ---- HERE!!!!
AND RL.NU_LOTE_CONTABIL = '01010101'; ----HERE!!!
-
- Rank: Programador Sênior
- Mensagens: 46
- Registrado em: Sex, 23 Nov 2007 9:26 am
- Localização: porto velho -ro
amigo, e que na verdade , ele só traz os que estão em D , eu queria fazer uma select do tipo union all ,pra ver ser a select traz os dois D E C a forma como você colocou, eu já fiz , mas não dar certo. ele se relaciona por meio de um numero de lote. você entendeu?
-
- Rank: DBA Júnior
- Mensagens: 229
- Registrado em: Sex, 05 Set 2008 2:59 pm
- Localização: Igrejinha - RS
Pra podermos te ajudar, posta a estrutura das tabelas envolvidas e dados de exemplo.
-
- Rank: Programador Sênior
- Mensagens: 46
- Registrado em: Sex, 23 Nov 2007 9:26 am
- Localização: porto velho -ro
essa e a tabela que tem os dois lancamentos o credito e o debito
essa tabela ela se relaciona com a tb_lancamento_contabil
e essa tabela se relaciona com tb_relac_contabil pelo cd_pagar com cd_documento ,onde eu seelciono o lote com o campo cd_lote_banco_pagar
TB_LANCAMENTO_CONTABIL (
NU_LANCAMENTO_CONTABIL NUMBER(*) NOT NULL,
NU_LOTE_CONTABIL NUMBER(*) NOT NULL,
DT_LANCAMENTO_CONTABIL DATE NOT NULL,
CD_LOJA VARCHAR2(3) NOT NULL,
CD_TIPO VARCHAR2(3) NOT NULL,
CD_CONTA_CONTABIL VARCHAR2(10) NOT NULL,
CD_HISTORICO_CONTABIL VARCHAR2(4) NOT NULL,
DS_HISTORICO_CONTABIL VARCHAR2(200),
VL_LANCAMENTO NUMBER(*) NOT NULL,
FL_TIPO_LANCAMENTO VARCHAR2(1),
NR_BANCO VARCHAR2(12),
DT_TRANSACAO DATE,
CD_USER VARCHAR2(30),
CD_LOJA_LANCAMENTO VARCHAR2(3) NOT NULL,
NU_OPERACAO NUMBER(*)
essa tabela ela se relaciona com a tb_lancamento_contabil
TB_RELAC_CONTABIL (
CD_DOCUMENTO VARCHAR2(20) NOT NULL,
NU_LANCAMENTO_CONTABIL NUMBER(*) NOT NULL,
NU_LOTE_CONTABIL NUMBER(*) NOT NULL,
DT_LANCAMENTO_CONTABIL DATE NOT NULL,
CD_LOJA VARCHAR2(3) NOT NULL,
CD_TIPO VARCHAR2(3) NOT NULL,
FL_TIPO_LANCAMENTO VARCHAR2(1) NOT NULL,
NR_BANCO VARCHAR2(30),
DT_TRANSACAO DATE,
CD_USER VARCHAR2(30)
TB_MOV_PAGAR (
CD_PAGAR VARCHAR2(10) NOT NULL,
CD_PARCELA VARCHAR2(7) NOT NULL,
CD_BANCO VARCHAR2(6),
CD_AGENCIA VARCHAR2(6),
NU_CONTA VARCHAR2(20),
DT_VENCIMENTO DATE NOT NULL,
VL_PARCELA NUMBER(16, 2) NOT NULL,
VL_JUROS NUMBER(16, 2),
VL_DESCONTO NUMBER(16, 2),
DT_LIQUIDACAO DATE,
CD_FORMA_PAGTO VARCHAR2(6),
CD_COND_PAGTO VARCHAR2(6),
CD_LOJA_PAGADORA VARCHAR2(3),
VL_DESC_ANTECIPADO NUMBER(16, 2),
VL_DESP_PAGTO NUMBER(16, 2),
NU_EAN VARCHAR2(50),
FL_POSICAO VARCHAR2(1) DEFAULT 'D',
NU_DOCUMENTO VARCHAR2(20),
CD_TIPO_DOCUMENTO VARCHAR2(6),
DS_OBS VARCHAR2(200),
CD_CONTA_BANCO VARCHAR2(10),
NU_CHEQUE VARCHAR2(20),
FL_CONTABILIZADO VARCHAR2(1) DEFAULT 'N',
NR_BANCO VARCHAR2(12),
DT_TRANSACAO DATE,
CD_USER VARCHAR2(30),
NU_BORDERO VARCHAR2(12),
CD_BANCO_PREVISAO_PAGTO VARCHAR2(6),
FL_ENCERRAMENTO_CONTABIL VARCHAR2(1),
CD_MOV_PAGAR NUMBER(*) NOT NULL,
CD_LOJA VARCHAR2(3),
VL_DEVOLUCAO NUMBER(*),
DT_VENCIMENTO_BOLETA DATE,
FL_TIPO_PAGAMENTO VARCHAR2(1),
CD_MOEDA VARCHAR2(10),
VL_MOEDA NUMBER(16, 4),
FL_LIBERA_PAGAMENTO VARCHAR2(1),
FL_CARENCIA VARCHAR2(1),
VL_ENCARGO NUMBER(16, 2),
VL_RETENCAO NUMBER(16, 2),
CD_LOTE_BANCO_PAGAR NUMBER(*),
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Retirando essas duas condições
ele traz algum tipo 'C' ????
AND MP.CD_LOTE_BANCO_PAGAR = '050505'
AND RL.NU_LOTE_CONTABIL = '01010101';
-
- Rank: Oracle Guru
- Mensagens: 448
- Registrado em: Ter, 16 Jun 2009 3:07 pm
- Localização: Parobé - RS
Sérgio Luiz Bonemberger Junior
Programador Junior
Parobé RS
[]s
Programador Junior
Parobé RS
[]s
Cara não to te entendendo..
O que é este seu lote, é um select full nas tabelas???
Se apenas com os joins o teu select não está retornando quer dizer que os registros não existem nada correspondente nas tabelas
O que é este seu lote, é um select full nas tabelas???
Se apenas com os joins o teu select não está retornando quer dizer que os registros não existem nada correspondente nas tabelas
- fsitja
- Rank: OraSauro
- Mensagens: 611
- Registrado em: Seg, 19 Jan 2009 4:29 pm
- Localização: Gaúcho no Rio de Janeiro - RJ
"The scars exist to remind us that the past was real"
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
Campanha: Como fazer uma pergunta e obter uma resposta.
http://tkyte.blogspot.com/2005/06/how-t ... tions.html
OCA & OCP Developer — OCE SQL Expert — OCS Data Warehousing Specialist
O que você define como lote?
-
- Rank: Programador Sênior
- Mensagens: 46
- Registrado em: Sex, 23 Nov 2007 9:26 am
- Localização: porto velho -ro
o lote seria um numero x que tambem tem na tb_rela_contabil, e tb_lancamento_contabil. sendo que a os numero de documento se relaciona com tb_relac_contabil , referente a tb_mov_pagar que ea cd_pagar.
você entendeu?
você entendeu?
-
- Rank: DBA Pleno
- Mensagens: 232
- Registrado em: Sex, 30 Mar 2007 7:26 pm
- Localização: Londrina - PR
Rafael O. Genaro
Primeiro..
Considerando que os campos
e
são number, por que os parâmetros estão como varchar, prefixados com 0 à esquerda?
Não deve ser o problema, visto que a consulta retorna registros (LC.FL_TIPO_LANCAMENTO igual a 'D', como você mencionou), mas certamente isso virá a causar problemas eventualmente.
Agora, para entender o que está ocorrendo, nada melhor que verificar os seus dados:
Retorna que resultado?
Retorna o que?
Retorna o que?
Como as colunas com Join são todas NOT NULL, descarta-se a possibilidade de que um dos campos está vazio, portanto:
- Ou não existem registros para o lote em questão (NU_LOTE_CONTABIL = 01010101 ) com FL_TIPO_LANCAMENTO = 'C';
- Ou não existem registros em TB_RELAC_CONTABIL com FL_TIPO_LANCAMENTO = 'C' que possua registro correspondente em TB_LANCAMENTO_CONTABIL;
- Ou, finalmente, não existem registros em TB_RELAC_CONTABIL com FL_TIPO_LANCAMENTO = 'C' que possua registro correspondente em TB_LANCAMENTO_CONTABIL e que possua registro em
TB_MOV_PAGAR, relacionado com TB_RELAC_CONTABIL por meio do número de documento com MP.CD_LOTE_BANCO_PAGAR = 50505.
Considerando que os campos
LC.NU_LOTE_CONTABIL
MP.CD_LOTE_BANCO_PAGAR
Não deve ser o problema, visto que a consulta retorna registros (LC.FL_TIPO_LANCAMENTO igual a 'D', como você mencionou), mas certamente isso virá a causar problemas eventualmente.
Agora, para entender o que está ocorrendo, nada melhor que verificar os seus dados:
select count(1)
from TB_LANCAMENTO_CONTABIL LC
where LC.NU_LOTE_CONTABIL = 01010101
and LC.FL_TIPO_LANCAMENTO = 'C'
select count(1)
from TB_LANCAMENTO_CONTABIL LC
where LC.NU_LOTE_CONTABIL = 01010101
and LC.FL_TIPO_LANCAMENTO = 'C'
and exists
(
select 1
from TB_RELAC_CONTABIL RL
where LC.NU_LOTE_CONTABIL = RL.NU_LOTE_CONTABIL
AND RL.NU_LANCAMENTO_CONTABIL = LC.NU_LANCAMENTO_CONTABIL
)
select count(1)
from TB_LANCAMENTO_CONTABIL LC
where LC.NU_LOTE_CONTABIL = 01010101
and LC.FL_TIPO_LANCAMENTO = 'C'
and exists
(
select 1
from TB_RELAC_CONTABIL RL
where LC.NU_LOTE_CONTABIL = RL.NU_LOTE_CONTABIL
AND RL.NU_LANCAMENTO_CONTABIL = LC.NU_LANCAMENTO_CONTABIL
and exists
(
select 1
from TB_MOV_PAGAR MP
where MP.CD_LOTE_BANCO_PAGAR = 050505
and MP.CD_PAGAR = RL.CD_DOCUMENTO
)
)
Como as colunas com Join são todas NOT NULL, descarta-se a possibilidade de que um dos campos está vazio, portanto:
- Ou não existem registros para o lote em questão (NU_LOTE_CONTABIL = 01010101 ) com FL_TIPO_LANCAMENTO = 'C';
- Ou não existem registros em TB_RELAC_CONTABIL com FL_TIPO_LANCAMENTO = 'C' que possua registro correspondente em TB_LANCAMENTO_CONTABIL;
- Ou, finalmente, não existem registros em TB_RELAC_CONTABIL com FL_TIPO_LANCAMENTO = 'C' que possua registro correspondente em TB_LANCAMENTO_CONTABIL e que possua registro em
TB_MOV_PAGAR, relacionado com TB_RELAC_CONTABIL por meio do número de documento com MP.CD_LOTE_BANCO_PAGAR = 50505.
-
- Informação
-
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 9 visitantes