Avatar billede 2dbornot2db Nybegynder
02. september 2005 - 20:01 Der er 3 kommentarer og
1 løsning

Convert int til money

I et view får jeg en fejl ved følgende:

CAST(dbo.tblComYear.fldYear AS varchar(4)) + ': ' + CONVERT(money, dbo.tblForskProjektFinans.fldBelob) AS Tekst2

Fejlmedd.:
Implicit conversion from datatype varchar to money is not allowed. Use the convert function to run this query.

Både fldYear og fldBelob er af typen int.

Det jeg gerne vil frem til, er en liste der viser følgende:
2002: Kr. 7.100,00
2004: Kr. 3.450,00
etc.
etc.

Så muligvis er min fremgangsmåde i det hele taget forkert?
Avatar billede xelor Nybegynder
03. september 2005 - 08:41 #1
Fremgansmåden er rigtig, men du mangler at CAST'e din CONVERT som nvarchar :

CAST(dbo.tblComYear.fldYear AS varchar(4)) + ': ' + CAST(CONVERT(money, dbo.tblForskProjektFinans.fldBelob) as nvarchar(30)) AS Tekst2
Avatar billede 2dbornot2db Nybegynder
06. september 2005 - 00:22 #2
Tak, det virkede - om end ikke helt efter hensigten. Jeg ville gerne have det formateret så f.eks. 48170 bliver til "kr. 48.170,00"

Nu bliver resultat blot: 48170.00

Endvidere ville jeg - med henblik på næste gang jeg står i problemstillingen - spørge hvad logikken bag den 'dobbelte' formatering er? Jeg synes ikke systematikken er soleklar :-)
Avatar billede xelor Nybegynder
06. september 2005 - 12:38 #3
Logikken er at man I SQL ikke kan sammenlægge værdier af 2 forskellige datatyper, hvilket var det du forsøgte...
Det der blev forsøgt var at tage en værdi, lave den tiil tekst, og tage en anden værdi, lave den til Valuta-type og lægge den sammen med en tekst. Det kan man ikke, derfor den implicit conversion error.
Om man kan få formateret en Tekst som en Valuta er jeg ikke helt sikker på...
"Kr." -værdien i en Money datatype er jo som sådan ikke en del af selve værdien i feltet, det er bare en måde at vise tallet på. MONEY-datatypen sikrer som sådan bare at der kun kommer 2 decimaler med og der kommer Seperatorer med, når data returneres fra feltet....
Du kan forsøge dig frem med forskellige FORMAT-kommandoer (Kig i Books Online for yderligere definitioner på FORMAT-kommandoen)

Du kan muligvis gøre det på denne måde :
CAST(dbo.tblComYear.fldYear AS varchar(4)) + ': Kr.' + CAST(CONVERT(money, dbo.tblForskProjektFinans.fldBelob) as nvarchar(30)) AS Tekst2
Avatar billede 2dbornot2db Nybegynder
06. september 2005 - 16:10 #4
Super. Tak for input!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Computerworld tilbyder specialiserede kurser i database-management

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester