[NEWSboard IBMi Forum]

Threaded View

  1. #8
    Registriert seit
    Dec 2009
    Beiträge
    314
    Zitat Zitat von Fuerchau Beitrag anzeigen
    Du musst die Funktion um deine Summe packen:
    dec(sum(...), 15, 7)

    Beachte dabei, dass das Ergebnis abgeschnitten wird, ggf. mach noch einen Round im Dec:
    dec(round(sum(...), 7), 15, 7)

    Beachte auch, dass es zu einem SQL-Fehler kommt, wenn das Ergebnisi > 8 Stellen vor dem Komma wird.
    ich habe das DEC(....), 8, 7) eingebaut, was mir folgende Einzelergebnisse vereinfacht dargestellt liefert:
    1. Berchnung 2. Berechnung 3.Berechung
    5.000.000,00 + 0,80 / 15.000.000,00
    wobei 1. Berechnung und 2. Berechung zusammen und 3.Berechnung alleine max. 99.999.999,99 ergeben können und 1 + 2 / 3 maximal 1,0000000

    und bekomme jetzt folgenden Fehler


    Nachrichten-ID . . . . : SQL0406 Bewertung . . . . . . : 30
    Nachrichtenart . . . . : Diagnose
    Sendedatum . . . . . . : 16.02.09 Sendezeit . . . . . . : 09:49:01

    Nachricht . . . : Umsetzungsfehler bei der Zuordnung zu Spalte LGD_COV.
    Ursache . . . . : Bei dem Versuch, Spalte LGD_COV mit einer Anweisung
    INSERT, UPDATE, ALTER TABLE oder REFRESH TABLE einen Wert zuzuordnen, ist
    ein Umsetzungsfehler der Art 1 aufgetreten. Wurde eine Vorkompilierung
    durchgeführt, ist der Fehler aufgetreten, als eine numerische Konstante in
    dieselben Attribute wie Spalte LGD_COV umgesetzt werden sollte. Mögliche
    Fehlerarten sind:
    -- Fehlerart 1 - Überlauf.
    -- Fehlerart 2 - Gleitkommaüberlauf.
    -- Fehlerart 3 - Gleitkommaunterlauf.
    -- Fehlerart 4 - Gleitkommaumsetzungsfehler.

    Wenn ich den Aufruf native ausführe bekomme ich für die Berechnung folgendes Ergebnis(auszugsweise):

    Ausdruck CASE
    2.512.556,6900000000000000
    289.699,7500000000000000
    91.641,2900000000000000
    3.894.073,4600000000000000
    360.586,9500000000000000
    5.436.586,2500000000000000
    2.633.054,1000000000000000
    10.516.225,7000000000000000
    16.044.414,2000000000000000
    2.674.854,3700000000000000
    4.499.917,6500000000000000

    und hier noch der aktuelle auszug aus dem sqlstatement
    dec(((decimal(dwht1.expeigcov * double(t67.lgdcov)/100, 13 , 2) +
    decimal(dwht1.expeigunco * double(t67.lgduncov)/100, 13 , 2)) /
    (dwht1.expeigcov + dwht1.expeigunco - dwht1.zussisum)), 8, 7),
    Last edited by nico1964; 09-02-16 at 09:51. Grund: Noch mehr Infos
    Andreas
    Ein AS/400 Dinosaurier since 1989

Similar Threads

  1. SQLXML select/insert
    By WalterB in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 22-11-15, 15:06
  2. SQL Update --> Berechnung mit &Var
    By sonicreducer in forum NEWSboard Programmierung
    Antworten: 1
    Letzter Beitrag: 01-04-15, 15:27
  3. Berechnung SINUS/COSINUS
    By RolandScherieble in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 05-05-03, 20:00
  4. ILE RPG, Berechnung extern definieren
    By Bau in forum IBM i Hauptforum
    Antworten: 2
    Letzter Beitrag: 05-12-02, 16:43
  5. Suche Tool für Berechnung Zeitdifferenz
    By sho1 in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 04-12-02, 18:55

Berechtigungen

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