Il motivo è che l'operatore "/" applicato a due numeri interi
restituisce, per definizione, un numero intero pari alla parte intera
della divisione. Quindi 2/10 = 0 il quale, moltiplicato per 100 dà
sempre e solo zero :-)
Puoi risolvere in diversi modi.
Ad esempio invertendo l'ordine dell'operazione
(100*2)/10
ma ciò ha senso solo se ti accontenti della percentuale "troncata".
In alternativa, un trucchetto è quello di anteporre un (1.0*) che forza
il casting del numero intero a float (se non ricordo male):
((1.0*2)/10)*100)
In questo caso l'operatore / viene applicato tra un float e un numero
intero e, per definizione di operatore, il risultato sarà float.
Infine, per aver maggior controllo (anche se il tutto è un po' verboso)
potresti utilizzare gli operatori di CAST e di CONVERT per "castare" il
numero intero in qualcosa di tua scelta (come il float o il decimal).
HTH
Ciao!
--
Simone Viganò AKA VeroToad - MVP Windows Desktop Experience
My blog: http://blogs.dotnethell.it/VeroToad
RIO (Risorse in italiano per utenti di Office): http://www.riolab.org
select (2 * 2) * 100
Ciao Alessio,
il risultato che ottieni è determinato da due fattori.
1^
----
Precedenza degli operatori (Transact-SQL)
http://msdn.microsoft.com/it-it/library/ms190276(SQL.90).aspx
----
2^
----
Precedenza dei tipi di dati (Transact-SQL)
http://msdn.microsoft.com/it-it/library/ms190309(SQL.90).aspx
----
leggendoli capirai perchè ricevi il risultato 0.
>come posso calcolore una percentuale all'interno di una query
qui ti ha già risposto Simone
:-)
--
Giorgio Rancati
[Office Access MVP]