Mit spørgsmål går på formattering af tal direkte i SQL.
Hvis jeg vha. QBE laver en forespørgsel, der henter nogle tal for en tabel (fx tblTest.Tal), så vises de højrestillet med det antal decimaler, der nu en gang er i tallet.
Hvis jeg så vælger at få det formatteret som 'Standard', så vises de højrestillet, med to decimaler og tusindtalsseparator.
Hvordan kan jeg opnå det samme direkte i SQL? Jeg har forsøgt mig med 'Format(tblTest.Tal, "Standard")' og 'FormatNumber(tblTest.Tal)'. Begge dele håndterer de to decimaler og tusindtalsseparatorerne fint, men returnerer værdierne venstrestillet. Hvordan kan jeg tvinge højrestilling af tallene igennem?
Det virker fint på relativt simple forespørgsler, men jeg får følgende fejlmeddelelse på min:
"Dette udtryk er stavet forkert, eller det erfor komplekst til at blive evalueret. Et numerisk udtrk kan f.eks. indeholde for mange komplicerede elementer. Prøv at forenkle udtrykket ved at tildele variabler dele af udtrykket."
Min forespørgsel ser således ud: TRANSFORM CDbl(Format(Sum([Normer]*[Kvante]), "Standard")) AS Loen SELECT tblBCListe.uid, tblFunktionsniveauer.Type FROM tblNivII INNER JOIN ((tblBCListe INNER JOIN (tbl1aFaner INNER JOIN (tblFunktionsniveauer INNER JOIN tbl1aNormer ON tblFunktionsniveauer.uid=tbl1aNormer.FunkNiveauId) ON tbl1aFaner.uid=tbl1aNormer.FaneId) ON tblBCListe.uid=tbl1aFaner.BCId) INNER JOIN tblLoenkvanter ON tblFunktionsniveauer.uid=tblLoenkvanter.FunkNiveauId) ON (tblNivII.uid=tblLoenkvanter.NivIIId) AND (tblNivII.uid=tbl1aFaner.NIVIIId) WHERE (((tblBCListe.uid)=[txtUID]) AND ((tbl1aFaner.DatoSat)<Now()) AND ((tbl1aFaner.DatoUdloeb)>Now()) AND ((tbl1aNormer.DatoSat)<Now()) AND ((tbl1aNormer.DatoUdloeb)>Now())) GROUP BY tblBCListe.uid, tblFunktionsniveauer.Type PIVOT tbl1aNormer.Year In ("2010","2011","2012","2013","2014","2015","2016","2017","2018","2019","2020","2021","2022","2023","2024");
Jeg tænker, at problemet opstår fordi, jeg inde i 'CDbl()' har en aggregering...?
I would try making a query which first selects and converts your fields then use the query in your SQL
Synes godt om
Slettet bruger
13. oktober 2010 - 21:57#4
format og alle andre muligheder, så vidt jeg ved, for at lave et udtryk med tusind seperator, bliver til et udtryk af typen: string. højrejustering foregår med venste padding med space, baseret på max string længde for hele 'recordsættet'. Hvis f.eks len(str(max(<talfelt>))) er 20, så vil følgende felt udtryk gøre det:
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.