Formattazione campi nella Vista
Lauran non è online. Ultima attività: 25/07/2008 17.39.50Lauran
Inserito il: 14 luglio 2008 16.17
111 messaggi dal 12 apr 2006 Istalla Microsoft Silverlight!
Salve !
Sto utilizzando MS SQL Server 2000
Ho necessità di Creare una vista (con select) i cui campi numerici della tabella devono essere formattati per l'output nel seguente modo : 99.999.999,99

Questa vista accede a una tabella i cui campi interessati sono strutturati come "money";
Come posso fare tenendo presente che non posso in alcun modo cambiare la natura del campo money nella tabella in quanto ci girano sopra le applicazioni ?
Grazie

Modificato da Lauran il 14 luglio 2008 16.18 -
Microsoft Most Valuable Professional
Re: Formattazione campi nella Vista
Andrea Montanari non è online. Ultima attività: 11/10/2008 17.02.00Andrea Montanari
Inserito il: 15 luglio 2008 00.23
contributi / Top Poster / Community manager / www.asql.biz / 960 messaggi dal 27 lug 2005 Istalla Microsoft Silverlight!
salve,
Lauran wrote:
Salve !
Sto utilizzando MS SQL Server 2000
Ho necessità di Creare una vista (con select) i cui campi numerici della tabella devono essere formattati per l'output nel seguente modo :
99.999.999,99

Questa vista accede a una tabella i cui campi interessati sono strutturati come "money";
Come posso fare tenendo presente che non posso in alcun modo cambiare la natura del campo money nella tabella in quanto ci girano sopra le applicazioni ?
Grazie
Modificato da Lauran il 14 luglio 2008 16.18 -

tendenzialmente dovresti provvedere a formattare come necessario solamente lato client, nella tua applicazione... diversamente un numero "formattato" non e' piu' un numero ma diventa una "stringa di testo".. le eventuali griglie in commercio espongono penso tutte una proprieta' di tipo "formatter" che provveda eventualmente alla bisogna in tal senso..
ma se proprio vuoi una rappresentazione testuale di un numero devi provvedere "a mano".. vedi ad esempio
http://www.google.it/search?hl=it&q=formatter+and+sql+server+and+numeric&meta= saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
Re: Formattazione campi nella Vista
Lauran non è online. Ultima attività: 25/07/2008 17.39.50Lauran
Inserito il: 15 luglio 2008 10.32
111 messaggi dal 12 apr 2006 Istalla Microsoft Silverlight!
Ho visto il post GRAZIE !
Mi è stata di aiuto questa funzione :
CONVERT(varchar(15), CONVERT(money, SUM(Impres)), 0)
fa proprio al caso mio solo che il problema è che al posto della virgola mi esce il punto ".";
Es.:

1000.00
0.00
12220.00

DOVREI SOSTITUIRE LA VIRGOLA CON IL PUNTO

COME POSSO FARE !!!


GRAZIE

PS: il problema che il dato deve essere preparato per linkarlo con Altova in XML e fare in modo di non doverlo formattare a mano li dentro a meno che non c'è un modo con Altova di importare solo i dati della vista senza sempre dover importare anche la tabella e dover riformattare i campi nel modo giusto (9,99)

Modificato da Lauran il 15 luglio 2008 10.58 -
Microsoft Most Valuable Professional
Re: Formattazione campi nella Vista
Andrea Montanari non è online. Ultima attività: 11/10/2008 17.02.00Andrea Montanari
Inserito il: 15 luglio 2008 12.18
contributi / Top Poster / Community manager / www.asql.biz / 960 messaggi dal 27 lug 2005 Istalla Microsoft Silverlight!
salve,
Lauran wrote:
Ho visto il post GRAZIE !
Mi è stata di aiuto questa funzione :
CONVERT(varchar(15), CONVERT(money, SUM(Impres)), 0)
fa proprio al caso mio solo che il problema è che al posto della virgola mi esce il punto ".";
Es.:

1000.00
0.00
12220.00

DOVREI SOSTITUIRE LA VIRGOLA CON IL PUNTO

devi "giocare" un po' di REPLACE...
con la prima REPLACE cambi la "," in un altro carattere, con la seconda cambi il "." nella ",", con la terza cambi il carattere che avevi definito di rimpiazzo alla "," con la "," vera, il tutto nidificato..
USE tempdb;
GO
CREATE TABLE dbo.t (
Id int,
m money
);
GO
INSERT INTO dbo.t VALUES ( 1, .1234 );
INSERT INTO dbo.t VALUES ( 2, 123.1234 );
INSERT INTO dbo.t VALUES ( 3, 123456.1234 );
INSERT INTO dbo.t VALUES ( 4, 12345678901234.1234 );
GO
SELECT id,
CONVERT(varchar(30), m, 1)
indica di ritornare entrambi i separatori, decimale e migliaia
FROM dbo.t;

SELECT id,
REPLACE(REPLACE(REPLACE(CONVERT(varchar(30), m, 1), '.','#'), ',','.'), '#', ',')
FROM dbo.t;
GO
DROP TABLE dbo.t;
--<------
id
---------
------------------------------
1 0.12
2 123.12
3 123,456.12
4 12,345,678,901,234.12

id
---------
-----------------------
1 0,12
2 123,12
3 123.456,12
4 12.345.678.901.234,12

saluti

Andrea Montanari (Microsoft MVP - SQL Server)
http://www.asql.biz - http://italy.mvps.org
Re: Formattazione campi nella Vista
Lauran non è online. Ultima attività: 25/07/2008 17.39.50Lauran
Inserito il: 15 luglio 2008 12.25
111 messaggi dal 12 apr 2006 Istalla Microsoft Silverlight!
Si grazie !
l'avevo fatto e stavo per rispondere !
Ho risolto con REPLACE; ho visto tutte le funzioni supportate da SQL e alla fine ho visto che l'unica possibilità (per quanto ne so) era quella di usare REPLACE.

Gentilissimo, GRAZIE DI NUOVO.


Vai a:
Torna al forum |   Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.


maltra - 623 pt
vladimiro - 501 pt
PeppeDotNet - 290 pt

Ultimi vincitori: maltra, vladimiro, PeppeDotNet

Iscriviti anche tu e raccogli punti. Questo mese in palio Windows Vista Ultimate, SQL Prompt e 1 ebook!



COMMUNITY
ULTIMI MESSAGGI


IN EVIDENZA
MISC
Powered by .db Forums