[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    May 2003
    Beiträge
    95

    SQL - Finden letzte Bewegung

    Hallo,

    kann man per SQL aus einen File wo je Artikel beliebig viele Bewegungen mit Datum gespeichert sind jeweils den Datensatz mit der letzten Bewegung in einen anderen File ausgeben. Per Pgm wäre das ein Klacks, will mich jedoch weiterentwickeln und das per SQL machen.

    Da es sich um eine einmalige Angelegenheit handelt wäre interaktives SQL anstelle SQL-RPG vielleicht günstiger.

    Kann mir jemand helfen. Danke.

  2. #2
    Joe is offline [professional_User]
    Registriert seit
    Mar 2001
    Beiträge
    365
    Hallo.

    Mit folgendem SQL-RPG würde es funktionieren, wenn in Tabelle1
    der Satz mit der letzten Bewegung eindeutig identifiziert werden kann. (z.B. Timestamp)

    C/EXEC SQL
    C+ select max(Feld) into :Groesstes from Tabelle1
    C/END-EXEC

    C/EXEC SQL
    C+ Insert into Tabelle2 select * from Tabelle1 where Feld = :Groesstes
    C/END-EXEC


    Wahrscheinlich geht das auch mit einer Insert-Anweisung und einem subselect - aber da sind dann die Profis gefragt.

    gruss
    Joe

  3. #3
    Registriert seit
    Mar 2002
    Beiträge
    5.365
    Hallo,

    es wird nicht ganz klar, wie der letzte Satz identifizierbar ist, wenn pro Tag mehrere Bewegungen sind, die mit demselben Datum abgespeichert sind, dann ist das auch in RPG ein (oft benutzter) Wackelhaufen. Sich auf die Sequenz zu verlassen könnte auch fast stimmen, auch in RPG mit record level access (Beispiel: Programm legt leeren Satz an zum reservieren und macht update, wenn der Benutzer fertig ist).
    Zudem ist beim RGZPFM meines Wissens nicht dokumentiert sicher gestellt, dass die relative Sequenz erhalten bleibt (sobald der RGZPFM parallel losdüst, vielleicht in V7, stimmt das nicht mehr).
    In SQL würde man üblicherweise eh gelöschte Sätze wieder belegen und sich den RGZPFM schenken, dann geht obiger Wackelhaufen nicht mehr.
    Ansonsten:
    INSERT INTO ...
    SELECT ... FROM ... WHERE
    TIMESTMP = MAX(TIMESTAMP)
    GROUP BY ARTIKEL

    Dieter

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
  •