[NEWSboard IBMi Forum]
Seite 2 von 2 Erste 1 2
  1. #13
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Du castest ja nur die Zwischenergebnisse und nicht das Endergebnis.
    Lass die Zwischencasts mal weg und caste das Endergebnis:

    decimal(sum ....., 11, 2)

    Berücksichtige dazu das max. mögliche Ergebnis um einen Überlauf auszuschließen.
    Dazu kommt noch, wie deine sonstigen Programme noch runden, also auf welchem Zwischenergebnis.
    Gerade bei Prozenten kann das nicht so unerheblich werden.

    SQL stellt dir die Funktion ROUND(Wert, Stellen) zur Verfügung.
    Dann kannst du das casten ganz sein lassen, da dies nur zum Abschneiden des Wertes führt, Beispiel:

    round(STS / 100.00 * RAB, 2)

    sum(round(....., 2))

    round(sum(....), 2)

    Je nach Ziel des Ergebnisses.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  2. #14
    Registriert seit
    Apr 2012
    Beiträge
    360
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Du castest ja nur die Zwischenergebnisse und nicht das Endergebnis.
    Lass die Zwischencasts mal weg und caste das Endergebnis:

    decimal(sum ....., 11, 2)

    Berücksichtige dazu das max. mögliche Ergebnis um einen Überlauf auszuschließen.
    Dazu kommt noch, wie deine sonstigen Programme noch runden, also auf welchem Zwischenergebnis.
    Gerade bei Prozenten kann das nicht so unerheblich werden.

    SQL stellt dir die Funktion ROUND(Wert, Stellen) zur Verfügung.
    Dann kannst du das casten ganz sein lassen, da dies nur zum Abschneiden des Wertes führt, Beispiel:

    round(STS / 100.00 * RAB, 2)

    sum(round(....., 2))

    round(sum(....), 2)

    Je nach Ziel des Ergebnisses.
    Habe mich für die Varaiante decimal(sum ....., 11, 2) entschieden.

    Das mit round(sum(....), 2) hat auf Anhieb nicht geklappt, aber das probiere ich später noch aus.

    Gruß und Dank

    Tarki

  3. #15
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    die Funktion Round steht dir dann ggf. noch nicht zur Verfügung.
    Ich glaube, die gibts erst ab V5R4.

    Solange du keine negativen Werte erzielst reicht dir ja erst mal ein

    decimal(sum(....) + 0.005, 11, 2)

    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

Similar Threads

  1. RPGLE - SQL
    By christian_lettner in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 16-11-06, 10:15
  2. SQL - Cursor vernichten ?!?
    By FNeurieser in forum NEWSboard Programmierung
    Antworten: 3
    Letzter Beitrag: 11-10-06, 14:53
  3. SQL und OBJLCK
    By malzusrex in forum IBM i Hauptforum
    Antworten: 8
    Letzter Beitrag: 19-09-06, 11:04
  4. SQL - Fehler
    By Kaufmann in forum IBM i Hauptforum
    Antworten: 11
    Letzter Beitrag: 28-06-06, 14:11
  5. SQL .. for update of (RPG embedded SQL)
    By loeweadolf in forum NEWSboard Programmierung
    Antworten: 2
    Letzter Beitrag: 01-06-06, 09:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •