[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Mar 2002
    Beiträge
    5

    Question Kumulieren mit SQL400

    Hallo,
    gibt es einen SQL400-Befehl, mit dem ich Werte kumulieren kann?
    Vielen Dank und viele Grüße, Stephan

  2. #2
    Registriert seit
    Feb 2002
    Beiträge
    16

    Post

    Hallo Stepahn,

    gibt es z.B.:
    SELECT sum(BETRAG) as Summe_Betrag
    FROM Lib/File

    Viel Erfolg Jens

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5

    Wink

    Hallo Jens,
    danke für die prompte Antwort. Ich dachte allerdings an Folgendes:

    Kundennumer Umsatz kumulierter Umsatz
    1212123 50 50
    1212124 50 100
    1212125 25 125

    usw.

    Viele Grüße, Stephan

  4. #4
    Registriert seit
    Jan 2001
    Beiträge
    340

    Post

    na dann,

    select kdnr, sum(Umsatz) as Summe
    from ...
    group by kdnr

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5

    Smile

    Vielen Dank,
    das wäre die normale Aufsummierung des Umsatzes aber nicht die kumulierte (im Beispiel die dritte Spalte).
    Viele Grüße, Stephan

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.695

    Post

    Eine "Fortschrittszahl" ist mittels SQL leider nicht möglich.
    Man schaue sich die Reihenfolge eines SELECT's mal genau an:

    1. Feldauswahl
    2. Dateiauswahl
    3. Where-Bedingung
    4. ggf. GROUP und HAVING
    5. ORDER BY !!

    Da das ORDER BY erst die letzt Aktion ist, nämlich die Sortierung des "Ergebnisses", kann eine Fortschrittszahl in der Feldauswahl nicht korrekt ermittelt werden.

    Es wäre auch zu schön, aber die Programmierer werden genau für solche Wünsche ja doch noch gebraucht.
    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

  7. #7
    Registriert seit
    Jun 2001
    Beiträge
    727

    Post

    Ab OS/400 V5R1 kannst du ein Select-Statement in der Feldauswahl angeben :

    select
    a.kdnr,
    sum(a.Umsatz) as Umsatz,
    min(select sum(b.Umsatz) from b.datei where b.kdnr <= a.kdnr) as KumUmsatz
    from a.datei
    group by a.kdnr
    order by a.kdnr

    Ich weis allerdings nicht ob das auch für die Funktion min/max gilt.
    Da ich nur V4R5 habe kann ich es also nicht ausprobieren.

    Sven

    [Dieser Beitrag wurde von Sven Schneider am 18. M&auml;rz 2002 editiert.]

  8. #8
    Registriert seit
    Mar 2002
    Beiträge
    5

    Talking

    Hallo Sven,

    der Tip war sehr gut. Es ergab sich auch etwas für V4R4:

    select
    a.kundennum, a.ums as umsatz,
    sum(b.ums) as kum from kunden b, kunden a
    where b.kundennum <= a.kundennum
    group by a.kundennum, a.ums
    order by a.kundennum
    Die Tabelle muss hierzu unique Datensätze besitzen.

    Viele Grüße, Stephan



Similar Threads

  1. Kumulieren mit SQL400
    By Stephan Paepke in forum IBM i Hauptforum
    Antworten: 0
    Letzter Beitrag: 12-03-02, 16:07

Berechtigungen

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