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

Numerar Registros Identicos


zippo.zippo

Pergunta

Olá.

Estou a fazer uma aplicação em access onde terei de fazer a media de combustível da viatura.

O meu problema é ter varias matriculas na mesma tabela onde me está a criar dificuldades na resolução do mesmo.

Já consegui fazer grande parte da consulta onde

Exemplos..

T_Consumo

id___Matricula___KMActual___litros___Media

1___xx-xx-xx_____0________20______--

2___xx-xx-xx_____450______30______6.7

3___xx-xx-xx_____777______28______8.6

e ate aqui tudo bem!

O problema vem quando passo de matricula por causa do ID

T_Consumo

id___Matricula___KMActual___litros___Media

3___yy-yy-yy______0________20______-2 (Não é este o valor certo mas deveria aparecer em branco tal como no ID=1

4___yy-yy-yy______554______15______2,7 (Quando insiru registos da matricula xx e depois da yy e depois da hh vai ficar tudo trocado tal como neste valor)

5___yy-yy-yy______777______28______12,6

Está é a minha istrução SQL

SELECT X.Matricula AS Matrícula, X.Km AS [Km Actual], X.Litros AS [Qtd Litros], X.Media AS Média, X.valorlitro AS [Preço por Litro], X.valortotal AS [Preço Total]

FROM (SELECT t_Consumo.matricula, t_consumo.valorlitro, t_Consumo.id, t_Consumo.Km, t_Consumo.Litros, (t_Consumo.Litros*t_Consumo.valorlitro) AS valortotal, t_consumo.matricula as codigo, (t_Consumo.Litros*100/(t_Consumo.Km-Anterior.Km)) AS Media, IIf(IsNull(t_Consumo.id-Anterior.id),0,t_Consumo.id-Anterior.id) AS Diferenca FROM t_Consumo LEFT JOIN (SELECT * FROM t_Consumo) AS Anterior ON t_Consumo.id>Anterior.id) AS X INNER JOIN (SELECT t_Consumo.id, Min(IIf(IsNull(t_Consumo.id-Anterior.id),0,t_Consumo.id-Anterior.id)) AS Diferenca FROM t_Consumo LEFT JOIN (SELECT * FROM t_Consumo) AS Anterior ON t_Consumo.id>Anterior.id GROUP BY t_Consumo.id) AS Y ON (X.Diferenca = Y.Diferenca) AND (X.id = Y.id)

WHERE (((X.matricula)=[forms]![F_Viatura]![matricula]));

Testei com RowNumber mas o resoltado não saiu bem o pretendido pois a unica coisa que fez foi contar todos os registos e não os da matricula xx-xx-xx pretendida.

SELECT (SELECT Count(matricula) + 1 FROM T_Consumo AS A WHERE A.id

< B.id) AS RowNumber, B.id, B.matricula

FROM T_Consumo AS B

WHERE (((B.matricula)="12gf12"));

Isto para dizer que a consulta terá de ter este resultado

cod_Matricula

1___xx-xx-xx

2___xx-xx-xx

3___xx-xx-xx

1___yy-yy-yy

2___yy-yy-yy

3___yy-yy-yy

Se poderem dar umas luzes sobre o que deva fazer agradecia.

Muito Obrigado pelo vosso tempo e parabéns ao forum!!!

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...