calcolo della velocità

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
Buongiorno a tutto lo staff, utilizzo access 2010 e ho bisogno del Vostro aiuto (se possibile).
Ho fatto un semplice programm che calcola it tempo percorso con l'auto, quindi:
l'orario di partenza, i Km percorsi, l'orario di arrivo. Volevo calcolare la velocità del mezzo.
La tabella è così formata: ID-Data(Data/Ora)-OrarioPartenza(Data/Ora)-KmPercorsi(Numerico)-OrarioArrivo(Data/Ora)-
Pedaggio(Valuta)-Carburante(Valuta)-Note(Memo).
Il mio problema è che non riesco a visualizzare la velocità del mezzo.
Ho fatto due query una con delle formule arrotondate e una con formule più precise:

Primo sql: dati arrotondati sugli orari ma non precisi sul risultato velocità:

SELECT tabDati.Data, tabDati.OrarioPartenza, tabDati.KmPercorsi, tabDati.OrarioArrivo, tabDati.Pedaggio, tabDati.Carburante, tabDati.Note, DateDiff("n",[OrarioPartenza],[OrarioArrivo]) AS Tempo, Int([KmPercorsi]/[Tempo]*60) AS Velocità
FROM tabDati;
----------------------------------
Secondo sql: dati precisi sugli orari ma non visualizzati per errore sul risultato velocità:

SELECT tabDati.Data, tabDati.OrarioPartenza, tabDati.KmPercorsi, tabDati.OrarioArrivo, tabDati.Pedaggio, tabDati.Carburante, tabDati.Note, DateDiff("n",[OrarioPartenza],[OrarioArrivo])\60 & Format(DateDiff("n",[OrarioPartenza],[OrarioArrivo]) Mod 60,""". ""00") AS Tempo, [KmPercorsi]-[Tempo] AS Velocità
FROM tabDati;

se potete aiutarmi Vi ringrazio anticipatamente
Maurizio
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
ho provato così e mi sembra possa andare bene, unica particolarità é sql server

SQL:
DECLARE @Distanza         float;
DECLARE @OrarioPartenza   DateTime;
DECLARE @OrarioArrivo     DateTime;

SELECT @Distanza       = 55.23;
SELECT @OrarioPartenza = dbo.Time(9, 12, 23);
SELECT @OrarioArrivo   = dbo.Time(15, 12, 23);

SELECT
  @OrarioPartenza
, @OrarioArrivo
, @Distanza
, DATEDIFF( "second" , @OrarioPartenza , @OrarioArrivo) as secondi
, 3600 * @Distanza / DATEDIFF( "second" , @OrarioPartenza , @OrarioArrivo) as velocita_km_ora
RISULTATO

1590429736909.png
 

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
Grazie Marino51, io non uso e non conosco sql server, si può adattare a sql normale di access?
grazie ancora.
 

marino51

Utente Attivo
28 Feb 2013
2.931
166
63
Lombardia
il calcolo é quello indicato, che riporto
SQL:
, 3600 * @Distanza / DATEDIFF( "second" , @OrarioPartenza , @OrarioArrivo) as velocita_km_ora
sostituisci i nomi preceduti da @ con i tuoi e provalo
 

maurivi53

Nuovo Utente
20 Nov 2018
16
0
1
Ok ci provo grazie ancora
Provato e funziona, grazie tante problema risolto, allego sql:

SELECT tabDati.Data, tabDati.OrarioPartenza, tabDati.KmPercorsi, tabDati.OrarioArrivo, tabDati.Pedaggio, tabDati.Carburante, tabDati.Note, DateDiff("n",[OrarioPartenza],[OrarioArrivo])\60 & Format(DateDiff("n",[OrarioPartenza],[OrarioArrivo]) Mod 60,""". ""00") AS Tempo, 3600*KmPercorsi/DATEDIFF("n",[OrarioPartenza],[OrarioArrivo])\60 AS velocita
FROM tabDati;

grazie ancora buona giornata