Newsgroup: it.comp.software.database
Titolo: URGENTE - MICROSOFT SQL SERVER 7.0

Salve ho un problema da risolvere al piu' presto
devo trasformare un numero intero ed inserire il separatore delle migliaia.
ad esempio:
1000 deve diventare 1.000
1201234 deve diventare 1.201.234
ho provato con:
convert(float, mionumero, 1)
ma non funziona.
Quancuno mi puo' aiutare
Grazie
Grazie


Non so se esista una funzione che gia ti dia questo risultato, qui ti mando
qualche riga che ti fa quello che chiedi (ci vuole poco a trasformarlo in
stored procedure):
---------------------
declare
@numero bigint,
@convertito varchar(30),
@formattato varchar(30)
begin
set @numero = 1234567895
set @convertito = convert (varchar, @numero)
print @convertito
set @formattato = right(@convertito,3)
set @convertito = left(@convertito, len(@convertito)-3)
while Len(@convertito) > 3
	begin
		set @formattato = right(@convertito,3) + '.' + @formattato
		set @convertito = left(@convertito, len(@convertito)-3)
	end
set @formattato= @convertito + '.' + @formattato
print @formattato
end
-----------------------------
Tieni presente che se il numero ha meno di 3 cifre, ti da errore (dovresti
fare un controllo previo)
Paulus
http://spazioweb.inwind.it/it_informatica
--------------------------------
Inviato via 
http://usenet.libero.it

il problema è che non posso utilizzare una stored procedure, ma deve essere
il risultato di una vista
comunque grazie
se hai altre idee sono bene accettate

 ha scritto nel messaggio
news:ah40js$lfo$1...@fe2.cs.interbusiness.it...


 wrote in message
news:ah40js$lfo$1...@fe2.cs.interbusiness.it...

Paolo,
se vuoi il mio parere non dovresti proprio inserire
una questione puramente legata alla presentazione del
dato in una struttura che serve ad interagire con i dati.
Per prima cosa i numeri sono numeri per l'RDBMS, la
visualizzazione del numero con un determinato formato
e' una decisione del programma client che li trasforma
per essere intelleggibili dagli esseri umani.
Nel caso di SQL Server, ad esempio, puo' essere il Query Analyzer
che decide il formato di visualizzazione in base alle impostazioni
internazionali dell'utente NT che sta facendo la Query.
Prova ad utilizzare l'Italiano nelle impostazioni internazionali
per il tuo utente NT, vai in Opzioni del Query Analyzer, poi in
Connections e seleziona "Use regional settings when displaying
currency, number, dates, and times" (questo per 2000, non ricordo
se esiste e si chiama cosi' anche nel Query Analyzer della 7.0)
Il risultato e' che il numero 1201234 viene visualizzato
come 1.201.234,0
In generale l'RDBMS comunica al client solo i valori, e'
il client che decide il formato con cui esporli (e di
solito i client fatti con cognizione dei problemi
di localizzazione applicano semplicemente le regole
associate alla cultura definita dalle impostazioni
internazionali dell'utente).
Fare un qualunque tipo di conversione in una vista
significa convertire il valore a carattere, potenzialmente
potresti poi usare la vista in un'altra query comparando
il valore di quella colonna con un valore numerico
scatenando cosi' dietro le quinte una conversione per
poter eseguire l'uguaglianza.
Just my .02 eurocents
--
Gianluca Hotz
Backoffice MVP (SQL Server) MCP SQL Server and MCP Windows
Vice-President of the Italian User Group for SQL Server
Founding Member of the Italian User Group for .NET
http://www.ghotz.com
http://www.ugiss.org