>ho un campo prezzo , è una string € 6,00
Ciao Ilario,
Per quale motivo è stato deciso di memorizzare gli importi in una colonna stringa?
>questo prezzo è già comprensivo di iva , nella select volevo
>convertirlo in numero e /1,20 per poi riconvertirlo in forma
>€ 5
>
>ho provato con convert (money e dividerlo 1/20 a parte che mi
>da 500,00 e sarebbe il meno, lo protrei dividere per 100 (anche
>se mi sembra sbagliato) ma poi non riesco a ritrasformarlo in
>€ 5
Il 500 che ottieni dipende dal fatto che per SQL Server il separatore decimale è SEMPRE il punto "." pertanto la virgola verrà ignorata.
Se per un motivo che ignoro non vuoi/puoi modificare il data type della colonna, dovrai prima di tutto sostituire la virgola con il punto e poi eseguire il calcolo:
USE tempdb;
SELECT '€ '
+ CONVERT(
varchar(15)
, CAST(REPLACE(N'€ 6,00', N',', N'.') AS money)
/ CAST(1.2 AS money)
) AS Importo;
/* Output:
Importo
-----------------
€ 5.00
(1 row(s) affected)
*/
>grazie mille
Prego.
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://blogs.dotnethell.it/lorenzo/
http://italy.mvps.org