Newsgroup: it.comp.appl.access
Titolo: Percentuale...

Salve,
tabella in cui ho registrato anno e importo-fatturato del tipo:
2000 1500,00
2001 2000,00
2002 1800,00
...
come faccio, usando una query, a sapere la percentuale di guadagno o perdita
rispetto all'anno precedente?
grazie
(spero di essermi spiegato...)

 ha scritto nel messaggio
news:VejPa.163339$Ny5.4...@twister2.libero.it...

Ciao samR
Se gli anni sono sempre contigui si risolve con una query abbastanza
semplice
-----------------
SELECT
    F1.Anno,
    F1.Fatt,
    IIF (Nz(F2.Fatt,0)=0,0,
          (F1.Fatt-Nz(F2.Fatt,0))/F2.Fatt *100) AS Perc
FROM
    Fatturato F1 LEFT JOIN Fatturato F2
    ON F1.Anno-1=F2.Anno
ORDER BY
    F1.Anno
-----------------
Ciao Giorgio.

 ha scritto nel messaggio
news:VejPa.163339$Ny5.4...@twister2.libero.it...

Se in una query vuoi fare riferimento ad un campo della riga precedente o
seguente, vai sul Sito Comune e dalla Sezione Queries scarica il database di
esempi allegato alla FAQ intitolata "Esempi di utilizzo e creazione di
queries".
Apri il database scaricato e seleziona il Topic Referring to a Field in the
Previous or Next Record.
Se premi il pulsante Show Exemple ti verranni mostrati esempi di ciň che ti
serve: ti consiglio di usare i due che usano una funzione VBA.
Per avere maggiori ragguagli su come sono stati relizzati gli esempi che hai
visionato, vai al link:
http://support.microsoft.com/support/kb/articles/q101/0/81.asp
Stai attento che le funzioni degli esempi fanno riferimenti alla libreria
Microsoft DAO quindi, se usi una versione di Access successiva ad Access 97,
aggiungi al tuo database i riferimenti a tale libreria.
-- 
Roberto
---------------------------------------------
il Sito Comune di it.comp.appl.access:
http://www.sitocomune.com
---------------------------------------------


Ehi, scusami Giorgio ma non ho capito molto (mannaggia all'ignoranza)
Dunque questi sono i campi della tabella:
Anno, Fatturato
quindi...
2000 15000
2001 20000
2002 40000
...
potrestri cortesemente riscrivere la quary con i campi sopra riportati (Anno
e Fatturato) ?
forse riuscirei a capire meglio...
Grazie e scusami ancora.

 ha scritto nel messaggio
news:bekrod$46d$1...@lacerta.tiscalinet.it...

Ehi Giorgio, ancora io :(
... non ho capito neanche quale formula hai usato per calcolare la
percentuale...
io pensavo ad una semplice proporzione...
Bohh
potresti spiegarmi ?
Grazie Ciao.

 ha scritto nel messaggio
news:btEPa.167785$lK4.4...@twister1.libero.it...

Ciao samR
Forse non si capisce bene perché ho utilizzato Fatturato come nome tabella,
rimedio subito, la tabella la chiamiamo Venduto e per i nomi dei campi
teniamo Anno e Fatturato quindi .....
 -----------------
 SELECT
     F1.Anno,
     F1.Fatturato,
     IIF (Nz(F2.Fatturato,0)=0,0,
           (F1.Fatturato-Nz(F2.Fatturato,0))/F2.Fatturato *100) AS Perc
 FROM
     Venduto F1 LEFT JOIN Venduto F2
     ON F1.Anno-1=F2.Anno
 ORDER BY
     F1.Anno
 -----------------
Avendo nella Join "ON F1.Anno-1=F2.Anno" la query non è visibile
graficamente, se sei abituato ad utilizzare l'interfaccia grafica di access
e per te è un problema scrivere le query con il linguaggio SQL te ne
propongo una visibile in modo grafico, utilizza una subquery e se le righe
della tabella sono molte (ma non penso) è più lenta della precedente.
Seconda soluzione con SubQuery
-----------------------
 SELECT
     Anno,
     Fatturato,
    (Select Fatturato
     From Venduto As F2
    WHERE F2.Anno=Venduto.Anno-1) AS FatturatoAnnoPrec,
    IIF (Nz(FatturatoAnnoPrec,0)=0,0,
           (Fatturato-Nz(FatturatoAnnoPrec,0))/FatturatoAnnoPrec *100) AS
Percentuale
 FROM
     Venduto
 ORDER BY
     Anno
------------------------
Ciao Giorgio.


Ciao samR
 Io di solito per calcolare gli incrementi o i decrementi di fatturato
utilizzo questo metodo .....
-------------------------------
Fatturato anno 2000 = 1500 eur
Fatturato anno 2001 = 1900 eur
Differenza fatturato = 1900-1500 = 400
Percentuale di incremento rispetto all'anno 2000 =  Differenza Fatturato
diviso Fatturato Anno 2000 per  100 = 400/1500*100 = 26,66 %
Infatti Fatturato Anno 2000 + l'incremento in percentuale = Fatturato anno
2001 ovvero 1500 *(1+ 26,6666/100) = 1900
-------------------------------
Come vedi è semplice aritmetica, forse la confusione nasce dall'utilizzo
delle varie IIF() NZ() ecc..  che servono a non far andare in errore la
query per divisione su 0 o per campo = NULL
Ciao Giorgio

 ha scritto nel messaggio
news:bengq4$70e$1...@lacerta.tiscalinet.it...

Grazie Giorgio, mai avuto una risposta così esaustiva!
Provo con la query :)
Sei stato molto gentile,
CIAO!