Ir para conteúdo
Fórum Script Brasil
  • 0

Select com join não retorna resultados no D7


Agostinho Sieczkowski

Pergunta

Estou com um problema envolvendo a execução de um select com join num dbexpress, e gostaria de saber se já passaste por isso ou se tens idéia do que ele está fazendo.

O comando que reproduzo abaixo, só para veres, quando executado no IbExpert, retorna todos os registros: a tabela GerPlanoContas contém um plano de contas bancário, e a tabela Banlancamento contém os lançamentos para algumas destas contas, somente as de último nível. O objetivo do select é retornar o plano de contas completo, mesmo com as contas para as quais não tenham havido lançamentos, por isso o "left join", e com as informações de onde houve lançamento.

Como falei, ao executar o comando no IbExpert, o retorno é o esperado. Porém, ao colocar este comando num SqlDataSet com as ligações para o ClientDataSet dentro de uma aplicação D7, o retorno são somente os registros da tabela GerPlanoContas, como se não houvesse lançamento na outra tabela.

Já fiz testes alterando o comando para fazer via union, select na BanLancamento com union na GerPlanoContas, e o retorno é o mesmo.

Se tiveres alguma informação sobre este comportamento, agradeceria.

select gpl.codconta,

extract (year from lct.DatLancamento) Ano,

extract (month from lct.DatLancamento) Mes,

lct.datlancamento Dt_Lanc,

lct.nrodocumento Documento,

lct.deschistorico Histor,

coalesce (lct.vlrdocumento, 0.00) Valor,

lct.docconciliado Concil,

gpl.descconta Conta,

lct.FlgCredDebt

from gerplanocontas gpl

inner join admempresa emp

on emp.codempresa = :PCodEmpresa

left join banlancamento lct

on (lct.codempresa = emp.codempresa and

lct.codbanco = :pcodbanco and

lct.codagencia = :pcodagencia and

lct.nrocontacorrente = :pnrocontacorrente and

lct.datlancamento between :pdatinicio and :pdatfinal and

lct.codreduz = gpl.codreduz)

where

gpl.codtipoplano = emp.codplanobancario

order by gpl.codconta,

extract (year from lct.DatLancamento),

extract (month from lct.DatLancamento),

lct.flgcreddebt desc,

lct.seqregistro

Att.

Agostinho

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
Como falei, ao executar o comando no IbExpert, o retorno é o esperado. Porém, ao colocar este comando num SqlDataSet com as ligações para o ClientDataSet dentro de uma aplicação D7, o retorno são somente os registros da tabela GerPlanoContas, como se não houvesse lançamento na outra tabela.

Se não me engano, ocorre que num SqlDataSet a sintaxe da instrução sql é um pouco diferente

http://www.forumweb.com.br/foruns/index.ph...dpost__p__83205

http://edn.embarcadero.com/article/21408

exemplo:

http://www.dotbr.com.br/fernando/lp_comerc...ar-ParteIII.pdf

http://www.t2ti.com/curso/video/delphi/avancado/cda.php

http://www.planetadelphi.com.br/artigo/147...hando-com-view/

abraço

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...