Differenza incrementale in una query acces

mercoledì 26 giugno 2013 - 23.37

Giovi Profilo | Newbie

buonasera, ho una tabella access cosi' strutturata

idMezzo KmEffettuati
1 10000
1 15000
2 5000
2 3000
3 1000

vorrei avere una query che mi calcola la differenza incrementale dei kilometri effettuati per IdMezzo
cioe' vorrei questo risultato

idMezzo KmEffettuati
1 10000
1 5000
2 5000
2 2000
3 1000

spero di essere stata chiara

grazie

saluti

Gio'

renarig Profilo | Expert

>buonasera, ho una tabella access cosi' strutturata
>idMezzo KmEffettuati
>1 10000
>1 15000
>2 5000
>2 3000
>3 1000
>
>vorrei avere una query che mi calcola la differenza incrementale
>dei kilometri effettuati per IdMezzo

Non so se ho capito bene la domanda perche nei risultati che ci esponi non mi ritrovo

Comunque immaginando una tabella con solo quei 2 campi e immaginando che
i Kilometri aumentano sempre

Assumiamo appunto i Kilometri come discriminante per determinare quello che è prima


con la Query sotto riesci ad avere
- idMezzo
- KmEffettuati
- MaxKmPrecedenti

Dove l'ultimo campo è appunto il (Valore Massimo) prelevato fra i (Valori Minori) del (Valore attuale)
SELECT Tabe.idMezzo, Tabe.KmEffettuati, ( SELECT Max(T.KmEffettuati) FROM Tabe AS T WHERE ( (T.idMezzo = Tabe.idMezzo) AND (T.KmEffettuati < Tabe.KmEffettuati) ) ) AS MaxDeiMinori FROM Tabe;


Attenta, questa soluzione "Va in crisi" se hai 2 valori di "KmEffettuati" uguali fra di loro
in questo caso dovrai dirci cosa sia il discriminante fra il prima e dopo ( magari una data ? )

Facci sapere

.







Giovi Profilo | Newbie

ciao ho provato ad eseguire la tua query con la mia tabella ma non funziona
ti dico come ho i dati

IDMezzo KmRif
1 12.345
1 12.600
2 750
3 125.000

il risultato con la tua query e' questo

IDMezzo KmRif MaxDeiMinori
1 12.345
1 12.600 12345
2 750,00
3 125.000

ma non e' quello che serve a me

a me serve questo

IDMezzo KmRif MaxDeiMinori
1 12.345
1 12.600 255
2 750 750
3 125 125

forse sbaglio qualcosa

grazie
saluti
Gio'

renarig Profilo | Expert

>forse sbaglio qualcosa

No non sbagli, il problema e che ti avevo dati il massimo valore dei Minori

se ti interessa la differenza allora devi fare cosi:
Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

Facci sapere

( Ricorda che NON puoi avere 2 valori di KmRif uguali ( per lo stesso IDMezzo ) )

.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5