Prezados, estou fazendo um select que está me fritando a cuca… o foda é que é muito simples.
SELECT MIN(dbo.abastecimentos.km) AS inicial, MAX(dbo.abastecimentos.km) AS final, MAX(dbo.abastecimentos.km) - MIN(dbo.abastecimentos.km) AS result,
dbo.veiculos.limitekm, dbo.veiculos.placa, dbo.veiculos.condutor
FROM dbo.abastecimentos INNER JOIN
dbo.veiculos ON dbo.abastecimentos.placa = dbo.veiculos.idveiculo
WHERE (dbo.abastecimentos.data BETWEEN CONVERT(DATETIME, '[inicial]', 102) AND CONVERT(DATETIME, '[final]', 102))
GROUP BY dbo.veiculos.placa, dbo.veiculos.limitekm, dbo.veiculos.condutor
se as informações no banco de dados está desta forma :
[table]
[tr]
[td]491 06/05/2013 321.809
509 13/05/2013 322.810
512 15/05/2013 323.401
520 20/05/2013 323.806
527 22/05/2013 324.500
527 22/05/2013 324.500
541 27/05/2013 325.002
[/td]
[/tr]
[/table]
o resultado é o seguinte :
inicial final result limitekm placa condutor.
321809 325002 3193 0 GML2849 Edson Coimbra Laube
até qui tá certo…
no entanto se as informações estão um pouco fora de ordem:
[table]
[tr]
[td]09/05/2013 106.083
31/05/2013 111.408
02/05/2013 104.690
22/05/2013 109.410
15/05/2013 107.659
17/05/2013 108.463
24/05/2013 110.042
06/05/2013 105.240
27/05/2013 110.365
13/05/2013 107.116
20/05/2013 0
20/05/2013 0
20/05/2013 108.805
23/05/2013 109.797
28/05/2013 110.895
[/td]
[/tr]
[/table]
o resultado é esse :
inicial final result limitekm placa condutor.
0 111408 111408 0 GZQ2703 Vinicius.
percebam que não pegou o KM INICIAL
alguem pode me dar uma Luz ?