SQLite Dezimalzahlen auf zwei Nachkommstellen runden?
Ich versuche gerade beim Abrufen in SQLite die Spaltenwerte auf jeweils zwei Nachkommastellen zu runden.
SELECT H AS Hauptkonto,
HW AS Betrag in Heimatwährung,
HWST AS Steuer in Heimatwährung,
JAHR AS Jahr,
SUM(HW-HWST) AS Summe
FROM Kundentabelle
GROUP BY H, Jahr
ORDER BY Jahr ASC;
Hierbei muss ich jeweils HW, HWST und SUM(HW-HWST) auf die zwei Nachkommastellen gerundet bekommen.
Ich habe bereits probiert die Befehle
ROUND(HW,2)
ROUND(HWST,2)
ROUND(SUM(HWST-HWST),2)
an verschiedenen Stellen einzusetzen, allerdings lässt sich der code dann nicht ausführen. Kennt sich jemand aus und könnte mir am besten anhand eines passenden codes weiterhelfen? Bin für jede Antwort sehr dankbar :)
1 Antwort
Laut Dokumentation kennt SQLite die Funktion ROUND.
Auffallend an deiner Anfrage ist jedoch die Passage
HW AS Betrag in Heimatwährung,
HWST AS Steuer in Heimatwährung,
Das würde ich entweder so schreiben:
HW AS "Betrag in Heimatwährung",
HWST AS "Steuer in Heimatwährung",
oder so:
HW AS Betrag_in_Heimatwährung,
HWST AS Steuer_in_Heimatwährung,
Hintergrund ist, dass in in SQL ein reserviertes Wort ist.
Doch, ich meine jetzt einen anderen Fehler zu sehen:
Die Anfrage ist eine gruppierende Anfrage, die eine Summe bildet. Zu der Summe werden vier weitere Attribute angegeben, obwohl nur nach zwei Attributen gruppiert wird. Das geht nicht. Es müssen entweder alle vier Attribute in der GROUP BY-Klausel genannt werden, also
GROUP BY H, HW, HWST, JAHR
oder es müssen die Attribute aus der Ergebnisliste gestrichen werden, die nicht in der GROUP BY-Klausel genannt sind.
Danke, habe bei mir in SQL stehen die Klammern stehen. Daran hat es leider nicht gelegen. Hast du evtl. eine Idee an welche stelle im code du den ROUND Befehl einsetzen würdest damit das funktioniert?