Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Query per il calcolo della differenza rispetto al valore precedente
lunedì 18 ottobre 2010 - 16.57
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Elenco Tags
VB.NET
|
.NET 3.5
|
Windows XP
|
Visual Studio 2005
|
Access (.mdb)
|
Office 2007
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
lun 18 ott 2010 - 16:57
ho un database in access con una semplice tabella con 3 colonne:
ID riga, valore contatore, data e ora. La tabella è ordinata per data e ora.
vorrei aggiungere un'altra colonna con l'incremento del contatore rispetto al valori precedenti in ordine di tempo e vorrei creare una query di Update per calcolare tutti gli incrementi.
Purtroppo il mio SQL è un po' arrugginito, per ora ho provato una cosa del genere:
UPDATE tabella SET incremento = contatore -(Select contatore from tabella where dataora=(select Min dataora from tabella where dataora>dataora))
Ma chiaramente quel dataora>dataora non può funzionare, non so come differenziare la data e ora della riga corrente da quella delle righe successive.
Mi date una mano?
Grazie in anticipo
Barabas
boccia75
Profilo
| Junior Member
109
messaggi | Data Invio:
mar 19 ott 2010 - 11:51
Se il tuo problema è solo la differenziazione....beh prova così:
UPDATE tabella SET incremento = contatore -(Select contatore from tabella as A where A.dataora=(select Min B.dataora from tabella as B where B.dataora>A.dataora))
Poi non so quanto sia performante...
Ciao
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
mar 19 ott 2010 - 13:07
Grazie del suggerimento
adesso provo, e se funziona verifico anche la perfomance.
nel frattempo ho trovato questa nota della microsoft
http://support.microsoft.com/kb/210504/en-us
che usa la funzione DLookup().
Ma ancora non riesco a metterla in una query di update.
Barabas
Barabas
Profilo
| Junior Member
102
messaggi | Data Invio:
mar 19 ott 2010 - 16:46
Ho provato con questa query
UPDATE tabella SET incremento = contatore -(Select contatore from tabella as A where A.dataora=(select Min B.dataora from tabella as B where B.dataora>A.dataora))
ma mi dice: "Per l’operazione è necessaria una query aggiornabile. "
guardando la guida di Access ho capito che l'errore dovrebbe pesentarsi perchè il risultato della sottoquery non è unico, anche se non so perchè.
Invece ho provato con con la funzione DLookUp e funziona, solo che necessita di un campo ID numerico ordinato e senza nessun valore mancante, cosa che io non ho. Ho la data, ma questa funzione non funziona con la data.
Barabas
Torna su
Stanze Forum
Elenco Threads
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 !