SELECT CONVERT(decimal(19,2),SUM(CONVERT(float,REPLACE(beregnethonorar,',','.')))) AS sum_beregnethonorar FROM krtilbud_kontrakt_skema_3 WHERE tilbudid=93
Grunden til at jeg bruger CONVERT i beregnethonorar er, at den er en varchar med dansk decimalseperator. Den skal også have lov til at modtage bogstaver (som selvfølgelig er en fejl).
i SUM vil jeg altid have 2 decimaler uanset hvad, f.eks. 100,00 200,00 200,15, 200,10 ....
clausjul>Lets look at this from another angle! SQL Server is a database for stroing data. You will more than likely be using some other application for displaying the result of the SQL Select. So I would do my formatting there and NOT in the SQL.
SELECT SUM(CAST(100 AS INT)) * 1.00 AS sum_beregnethonorar
Så er resultatet 100 og ikke 100,00 som jeg ville have. Men jeg har løst problemet med noget kodning, hvor den finder ud af, om der er komma, og hvis ikke, så sættes ,00 på.
Med den kodning har du ikke fulgt de anvisninger, du har fået.
SELECT SUM(CAST(100 AS DECIMAL(19,2))) AS sum_beregnethonorar
vil give dig 2 decimaler uanset hvad. Det nummer, du gør med at gange med 1.00 ændrer resultatet til en float, og det giver dig variabelt antal decimaler.
Hvis der absolut skal ganges med en eller anden værdi efter summeringen, så gør følgende:
SELECT cast(SUM(CAST(100 AS INT)) * 1.00 as decimal(19,2)) AS sum_beregnethonorar
IMO bør du åbne et nyt spørgsmål med reference til dette og uddele nogle points for svarene!
Har skrevet i et tidligere indlæg: i SUM vil jeg altid have 2 decimaler uanset hvad, f.eks. 100,00 200,00 200,15, 200,10 .... Men det er korrekt at jeg nævnte det i starten.. Mærkeligt at det ikke virker hos mig :-(
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.