AJUDA EM UMA SQL
Galera estou com um problema em uma query, acho que eu não montei ela direito
Tenho a seguinte query:
SELECT PS.ncadlancamento,M.nome,V.Placa,SUM(LPS.credito) + SUM(LPS.debito) AS total,Ps.dataemissao,P.nome,F.nome FROM PrestacaoServico AS PS
LEFT JOIN motoristas M ON M.codmotorista = PS.codmotorista
LEFT JOIN parceiros P ON P.codparceiro = PS.codmotorista
LEFT JOIN funcionarios F ON F.codfunc = PS.codmotorista
LEFT JOIN veiculos V ON V.codveiculo = PS.codveiculo
Inner JOIN lancamentoprestacaoservico LPS on LPS.NCadLancamento = PS.NCadLancamento
WHERE statusimpressao = 3 order by ps.ncadlancamento
Blz
E esta me trazendo o resultado
NCadLancamento,nome,placa,total,dataemissao
2 | transportadora | 299,67 | 2010-04-22
Só que esse valor esta errado, pois era para exibir
2 | transportadora | -200 | 2010-04-22
3 | outra transportadora | 499,67 | 2010-04-26
A estrutura das minhas tabelas estão assim
LancamentoPrestacaoservico
ncadlancamento | Tipo | Data | Credito | Debito
2 | D | 2010-04-22 | 0 | -200
3 | D | 2010-04-26 | 0 | -100,33
3 | C | 2010-04-26 | 600 | 0
PrestacaoServico
ncadlancamento | dataemissao | statusimpressao
1 | 2010-03-26 | 3
2 | 2010-04-22 | 3
3 | 2010-04-26 | 3
Esses são os campos principais, o ncadlancamento da prestação de serviço é uma chave primária e esta com o nº automático.
Obs: Utilizando a linha - Inner JOIN lancamentoprestacaoservico LPS on LPS.NCadLancamento = PS.NCadLancamento
(atual) ela esta exibindo o resultado que coloquei, se eu utilizar o left join ele exibir o mesmo resultado com a diferente que o registro é o nº 1 e não o 2 como esta atualmente.
Será que alguém pode me ajudar e ver o que esta errado com essa query?
Vlw abraço a todos
Tenho a seguinte query:
SELECT PS.ncadlancamento,M.nome,V.Placa,SUM(LPS.credito) + SUM(LPS.debito) AS total,Ps.dataemissao,P.nome,F.nome FROM PrestacaoServico AS PS
LEFT JOIN motoristas M ON M.codmotorista = PS.codmotorista
LEFT JOIN parceiros P ON P.codparceiro = PS.codmotorista
LEFT JOIN funcionarios F ON F.codfunc = PS.codmotorista
LEFT JOIN veiculos V ON V.codveiculo = PS.codveiculo
Inner JOIN lancamentoprestacaoservico LPS on LPS.NCadLancamento = PS.NCadLancamento
WHERE statusimpressao = 3 order by ps.ncadlancamento
Blz
E esta me trazendo o resultado
NCadLancamento,nome,placa,total,dataemissao
2 | transportadora | 299,67 | 2010-04-22
Só que esse valor esta errado, pois era para exibir
2 | transportadora | -200 | 2010-04-22
3 | outra transportadora | 499,67 | 2010-04-26
A estrutura das minhas tabelas estão assim
LancamentoPrestacaoservico
ncadlancamento | Tipo | Data | Credito | Debito
2 | D | 2010-04-22 | 0 | -200
3 | D | 2010-04-26 | 0 | -100,33
3 | C | 2010-04-26 | 600 | 0
PrestacaoServico
ncadlancamento | dataemissao | statusimpressao
1 | 2010-03-26 | 3
2 | 2010-04-22 | 3
3 | 2010-04-26 | 3
Esses são os campos principais, o ncadlancamento da prestação de serviço é uma chave primária e esta com o nº automático.
Obs: Utilizando a linha - Inner JOIN lancamentoprestacaoservico LPS on LPS.NCadLancamento = PS.NCadLancamento
(atual) ela esta exibindo o resultado que coloquei, se eu utilizar o left join ele exibir o mesmo resultado com a diferente que o registro é o nº 1 e não o 2 como esta atualmente.
Será que alguém pode me ajudar e ver o que esta errado com essa query?
Vlw abraço a todos
Alguém ...
posta a query com a estrutura e os dados ai pra mim ver...
uma obs: tente por no fim group by M.nome e ve se resolve...
LRossi vlw pela dica, funcionou direitinho, eu apenas fiz uma modificação do Inner join alterei para Left Join, para exibir a linha que não tinha lançamentos vinculados.
Obrigado abraço
Obrigado abraço
Tópico encerrado , respostas não são mais permitidas