PDA

View Full Version : [ACCESS]- Operazione tra record


TheImpaler
17-11-2005, 20:29
Sono abbastanza inesperto di access ma vorrei imparare. Avrei bisogno di un aiuto per fare questo:
poniamo che io abbia una lista di nomi a cui è associato un punteggio ed una data, reinserendo nella stessa tabella altri record conteneti gli stessi nomi (ed eventualmente di nuovi) ed un punteggio ed una data aggiornati è come è possibile calcolare l'incremento in % sul punteggio?
ad esempio.
Inizialmente inserisco in tabella:
xxx 123 17/11/2005
yyy 234 17/11/2005
zzz 345 17/11/2005

poi inserisco
xxx 222 18/11/2005
yyy 444 18/11/2005
zzz 634 18/11/2005

comeposso far calcolare e visualizzare in una query magari le variazioni in % tra il punteggio agggiornato e quello precedente?

Spero di essere stato chiaro e di nn aver scritto troppe bestialità. ciao

guldo76
17-11-2005, 22:19
Accidenti, non sei tu che sei inesperto, è che è un po' complicato...
Forse c'è un sistema migliore, ma a me è venuto questo:
SELECT A.nome, format(B.valore/A.valore-1,"0.00%") AS varperc
FROM Lista AS A
INNER JOIN Lista AS B
ON A.nome = B.nome
WHERE A.data = (
SELECT Max(data)
FROM Lista
WHERE data < (select max(data) from Lista where nome = A.nome)
AND nome = A.nome
) AND B.data = (
SELECT Max(data)
FROM Lista
WHERE nome = B.nome
)
ORDER BY (B.valore/A.valore-1) DESC;
con i risultati in formato percentuale e messi in ordine decrescente.
La tabella B contiene i valori "nuovi", la A quelli "vecchi".
Era quello che volevi?

TheImpaler
18-11-2005, 12:59
se ti chiedo dove inserire quella parte di codice ti faccio capire che sono inesperto? :(

camillozzo
18-11-2005, 13:46
Allora dentro al tuo db, seleziona su query e clicca su nuovo. Dai l'ok su visualizzazione struttura, chiudi la maschera dopo.
In alto a sinistra sotto file ti compare SQL: clicca lì e incolla il pezzo di codice SQL che ti ha postato guldo prima.
Dai esegui e vedi i tuoi risultati. Se vuoi salvarlo ti chiederà con che nome vuoi salvare la query.

TheImpaler
18-11-2005, 19:31
Grazie mille per la disponibilità. ora provo