Busca e Resultado Iguais
23/11/2017
0
Preciso trazer em uma linha a nota fiscal emitida com as respectivas contas debito e credito. Mas o problema está ai, quando busco os códigos das duas contas que já estão na tabela NF, preciso trazer a descrição ( nome ) das contas que estão na tabela PlanoContas. Ao fazer isso, o nome da primeira conta se repete na segunda conta.
Fiz o left join unindo os PKs normal, mas não consigo evitar que isto aconteça.
Data Movimento NumDocumento CodConta Descricao CodContrapartida Descricao
22/06/2017 228717 10118 ( - ) DEVOLUCOES DE VENDAS 1010 ( - ) DEVOLUCOES DE VENDAS
Como podem ver a conta 10118 é sim devoluções de vendas mas a conta 1010 não.
Será que podem me ajudar nesta questão?
Alexandre Daniel
Post mais votado
23/11/2017
Um exemplo:
Select nf.DataMovimento, nf.NumDocumento,lc.CodConta,pc.Descricao,lc.CodContrapartida, (Select Descricao from PlanoContas where ID = CodContrapartida) as Descricao2 from NotasFiscais ... e segue os demais normalmente.
Neste exemplo o segundo campo Descricao vira um Select que ira trazer o resultado do campo Descricao vinculada a Chave da tabela PlanoContas.
Ilustracão:
PlanoContas
----------------------------
ID Descricao Outros
1 Teste bla
2 Teste2 bla2
Obs.: Este sub Select não pode trazer mais de uma linha de resultados. mas pode se usar Group para unir vários resultados
Acho que se seguir por esta linha de raciocínio pode lhe ajudar
Winston Jesus
Mais Posts
23/11/2017
Winston Jesus
Posta a linha do "Select" assim fica mais fácil de analisar e poder te ajudar.
Abraço!
23/11/2017
Alexandre Daniel
Segue o Script :
Select nf.DataMovimento, nf.NumDocumento, CodConta, Descricao, CodContrapartida, Descricao from NotasFiscais nf
left join LancamentosContabeis lc on lc.Empresa = nf.Empresa
and lc.NumLancamento = nf.NumLancamento
and lc.NumLote = nf.NumLote
and lc.Periodo = nf.Periodo
left join PlanoContas pc on pc.Empresa = lc.Empresa
and pc.Periodo = lc.Periodo
where nf.DataMovimento = '2017-06-22'
and lc.TipoLancamento = 'D'
23/11/2017
Alexandre Daniel
Select nf.DataMovimento, nf.NumDocumento,lc.CodConta,pc.Descricao,lc.CodContrapartida, pc.Descricao from NotasFiscais nf
left join LancamentosContabeis lc on lc.Empresa = nf.Empresa
and lc.NumLancamento = nf.NumLancamento
and lc.NumLote = nf.NumLote
and lc.Periodo = nf.Periodo
left join PlanoContas pc on pc.Empresa = lc.Empresa
and pc.Periodo = lc.Periodo
where nf.DataMovimento = '2017-06-22'
and lc.TipoLancamento = 'D'
23/11/2017
Winston Jesus
23/11/2017
Alexandre Daniel
23/11/2017
Winston Jesus
pc.Descricao,lc.CodContrapartida, pc.Descricao o que faz com que ele repita a descrição duas vezes da mesma tabela, sendo que acredito que a descrição que você quer esta em outra tabela.
23/11/2017
Alexandre Daniel
Empresa - PK
Periodo - PK
Tradutor - PK
Descricao
.....
A Tabela LancamentosContabeis , as colunas são assim:
Empresa - PK
Periodo - PK
NumLote -PK
CodConta
CodContrapartida
Então, tanto a "CodConta" como a "CodContrapartida" da tabela LancamentoContabeis, possui os dados da coluna "Tradutor" da tabela PlanoContas. É ai que estou tendo a dificuldade de trazer as respectivos " Nomes " das contas que estão na tabela PlanoContas.
24/11/2017
Alexandre Daniel
Winston Jesus, meus parabéns. Sua linha de raciocínio foi certeira. Deu certo um relatório que a tempos estava com dúvidas de como trazer esse resultado. Muito obrigado pela sua ajuda.
Parabéns!
24/11/2017
Winston Jesus
Clique aqui para fazer login e interagir na Comunidade :)