Avatar billede junold Nybegynder
11. august 2008 - 10:24 Der er 3 kommentarer og
1 løsning

Afrunding i MS SQL

Jeg er dette udtræk:
SELECT top 10 value, convert(varchar,DatoImport,103) as Dato FROM [mindb].[dbo].[felt] order by DatoImport desc

Jeg vil dog godt have det rundet af til 2 decimaler. Hvordan kan man det?
Avatar billede borrisholt Novice
11. august 2008 - 13:24 #1
KAn du ikke bare bruge Round funktionen ?
http://doc.ddart.net/mssql/sql70/ra-rz_20.htm
Avatar billede junold Nybegynder
14. august 2008 - 13:41 #2
Det jeg skal have den til, er at f.eks. 100,4540 bliver 100,45. eller 100,101 bliver 100,10.. Eller 100 bliver 100,00.. Altså, der skal altid være 2 pladser efter komma. Jeg synes ikke jeg kan finde det på den side?
Avatar billede borrisholt Novice
14. august 2008 - 14:40 #3
declare @NumberOfDecimals int
declare @Factor float
declare @Value float
declare @sValue Varchar(100)
declare @DecimalPos  int

select @NumberOfDecimals = 2,  @Value = 100
select
  @Factor = Power(10, @NumberOfDecimals),
  @Value = cast(@Value * @Factor + 0.5 as int) / @Factor,
  @sValue = cast(@Value as VarChar(100)),
  @DecimalPos = charIndex('.', @sValue)

if @DecimalPos = 0
begin
  Set @sValue = @sValue + '.'
  select @DecimalPos = charIndex('.', @sValue)
end

while len(@sValue) < @DecimalPos + @NumberOfDecimals
  Set @sValue = @sValue + '0'

select @sValue


Så må du selv lave en funktion ud af det ...

Jens Borrisholt
Avatar billede junold Nybegynder
14. august 2008 - 17:59 #4
SELECT top 10 round(value ,2) as value, convert(varchar,DatoImport,103) as Dato FROM [mindb].[dbo].[felt] order by DatoImport desc

Den virker som den skal
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