[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Nov 2009
    Beiträge
    208

    update der ersten 100 sätze

    Hallo
    wenn ich eine Datei mit SQL erzeuge kann ich ein
    Code:
    create table MyDatei as (select f1, f3, f5 from basisdatei fetch first 100 rows only)
    machen um nur 100 Sätze in die neue Datei zu bekommen.

    Jetzt haben wir die Aufgabe, nach einer Summenübersicht nur n Sätze zu verarbeiten.

    Code:
    Anzeige:   
    Status 1                  1551 Sätze 
    wieviel verarbeiten:      __55
    Dann soll ein
    Code:
    Update Datei set Status = 2 where status = 1 fetch for 55 rows only
    laufen.
    Das geht aber nicht. Gibt es eine andere Syntax?

    Danke
    DiBe

  2. #2
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Du bräuchtest eher sowas:
    Code:
    Update Datei set Status = 2 where id in (Select id from Datei where status = 1 fetch first 100 rows only)

  3. #3
    Registriert seit
    Nov 2009
    Beiträge
    208
    Ja, danke.
    Das könnte gehen. Zumindest in diesem Fall habe ich einen Unique Key mit dem das geht.

    Danke
    Dietlinde Beck

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Wie wäre es mit dem Merge-Statement?

    merge into zieltable a
    using (select f1, f2, f3 from myfile fetch first 100 rows only) b
    on a.key = b.key
    when matched update set Status = 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

  5. #5
    Registriert seit
    Nov 2009
    Beiträge
    208
    ???
    Wie liest man das?
    Heist merge nicht mischen? mischen mit Update?
    Ist das der create und der update zusammen? (das kann ich es leider nicht verwenden)
    DiBe

  6. #6
    Registriert seit
    Feb 2001
    Beiträge
    20.236
    Generell liest man das so:

    merge into zieltablle z
    using quelltabelle q on z.key = q.key

    when matched -- also wenn die Beziehung stimmt
    update set .... -- dann also update des Zielsatzes

    when not matched -- als wenn das ziel nicht da ist
    insert ...

    Wobei eben die Bedingung "when matched" oder "when not matched" auch weggelassen werden kann.
    Man kann auch mehrere when-Klauseln definieren:

    when matched and q.f1 = X
    update set Status = 2

    when matched and q.f1 = Y
    update set Status = 3

    when matched and q.f1 = z
    delete

    usw. usw.
    Was denn nun gemischt wird oder nicht bleibt dir überlassen.
    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. SQL und Reihenfolge der angezeigten Sätze
    By KingofKning in forum NEWSboard Programmierung
    Antworten: 8
    Letzter Beitrag: 30-12-14, 19:53
  2. Gelöschte Sätze in PF
    By Peet in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 29-10-14, 08:05
  3. Selektieren Sätze im LF-File
    By malzusrex in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 19-05-03, 13:48
  4. mit SQL nur 100 größte Sätze lesen
    By holly in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 31-01-03, 09:08
  5. gelöschte Sätze
    By Wirnitzer in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 07-08-01, 19:59

Berechtigungen

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