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

Select em duas tabelas....


laudir

Pergunta

estou desenvolvendo um programa em delphi com bd firebird 2.0 e a alguns dias "empaquei" nesta sql:

select f.CODVEIC, f.NR_PLACA, f.MOD_VEIC, f.DT_CAD,
SUM(v.KM_SAIDA) TKMS,
SUM(v.KM_CHEGADA) TKMC,
SUM(v.LT_COMBUSTIVEL) LTCOM,
v.DT_CAD FROM CADVIAGEM as v, CADFROTA as f
where v.DT_CAD between :Data03 and :Data04
GROUP BY f.CODVEIC,f.NR_PLACA,f.MOD_VEIC,f.DT_CAD,v.DT_CAD
como podem perceber são duas tabelas uma CADVIAGEM e a outra CADFROTA nas tabelas existem vários campos mas os que eu preciso para essa consulta são estes utilizados acima da forma q fiz não esta agrupando por códigos........ ele mostra varias vezes os veiculos deferenciando a quilometragem litros de combustivel e tal qual a maneira correta de fazê-la?? eu preciso q leia da data de dois DeteEdits q são repassadas para
:Data03 e :Data04

(isso consegui )

q mostre somente o q encontrar dentro destas datas

e ainda q não repita o código...

por exemplo eu consegui fazer uma consulta como eu precisava assim.....

que irá me mostrar dentro de uma referida data os registros encontrados

(estou no trabalho não tenho o sql aqui) motra estes dados

BUSCA POR VIAGEM

CODVIAGEM-PLACAVEIC-DESCVIAGEM--DATACADASTRO-KMSAIDA-KMCHEGADA-COMBUSTGASTO-MEDIA

01-------------AAA1111----CURITIBA/SP--15/05/2008-------25000-----25300---------30------------------10

02-------------BBB2222----CASCAVEL/RJ-15/05/2008--------28500-----30500---------160----------------12,5

ESSA MOSTRA TODAS AS VIAGENS DE TODOS OS VEICULOS.... MOSTRA CORRETAMENTE..

Agora eu preciso que leia a quilometragem (KMCHEGADA-KMSAIDA) e qtde de combustivel gasto da tabela viagem onde o código do veiculo seja igual nas duas tabelas... e me mostre o geral de cada veiculo...

o que eu gostaria de mostar seria +/- assim:

CODVEIC-PLACAVEIC-MODELOVEIC-DATACADASTRO-KMPERCORRIDO-SOMACOMBUSTGASTO-MEDIA

01---------AAA1111-----PARATI CL----15/05/2008-------300----------------30-------------------------10

CASO OUVESSEM OUTRAS VIAGENS DO MESMO VEÍCULO SERIAM SOMADAS A ESTA...

eu penso q isso seja possível de ser feito...

agradeço se alguém puder ajudar....

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0
da forma q fiz não esta agrupando por códigos........

ele mostra varias vezes os veiculos deferenciando a quilometragem litros de combustivel e tal

qual a maneira correta de fazê-la??

eu preciso q leia da data de dois DeteEdits q são repassadas para

:Data03 e :Data04
(isso consegui ) q mostre somente o q encontrar dentro destas datas e ainda q não repita o código...
laudir, seu "problema" está relacionado a forma como você está usando o GROUP BY. Com as informações que você postou, se você quiser que não haja repetição do codigo (CODVEIC) você terá que mudar sua consulta. A inclusão do campo DT_CAD da tabela CADVIAJEM, faz com que seja realizado um agrupamento para o mesmo código a cada data de viajem cadastrado. Então, se você quer mesmo apenas agrupar as informações por veículo, remova a coluna v.DT_CAD da cláusula SELECT e GROUP BY:
select f.CODVEIC, f.NR_PLACA, f.MOD_VEIC, f.DT_CAD,
SUM(v.KM_SAIDA) TKMS,
SUM(v.KM_CHEGADA) TKMC,
SUM(v.LT_COMBUSTIVEL) LTCOM
FROM CADVIAGEM as v, CADFROTA as f
where v.DT_CAD between :Data03 and :Data04
GROUP BY f.CODVEIC,f.NR_PLACA,f.MOD_VEIC,f.DT_CAD

lembre-se: no uso do GROUP BY, apenas as colunas com valores iguais são agrupadas em uma linha. Qualquer coluna que mude de valor, irá regar uma nova linha no resultado final.

Abraços

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...