[NEWSboard IBMi Forum]

Hybrid View

  1. #1
    Registriert seit
    Aug 2001
    Beiträge
    2.961
    Zitat Zitat von Eric Beitrag anzeigen
    Hallo, das krieg ich irgendwie nicht hin,

    meine Tabelle zum Testen habe ich TAB1 genannt, es sind folgende Felder vorhanden :
    ETNUM, BLDAT, TEXT, PREIS (bei der wirklichen Tabelle existieren noch mehr Felder).

    es soll von jeder ATNUM der Satz mit dem höchsten Wert in BLDAT angezeigt werden :

    'select etnum, max(bldat) from tab1 group by etnum' das zeigt mir die richtigen Daten an, leider auch nur die angegebenen Felder !

    Bitte nochmals um Hilfe, vielen Dank ERIC
    Tipp doch einfach Baldurs oder meine Beispiele ab!
    Und übersetz' notfalls die verwendeten Dummy-Feldnamen durch Deine eigenen.

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 6. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  2. #2
    Registriert seit
    Sep 2005
    Beiträge
    53

    DANKE

    Hallo, hab folgendes probiert :

    Select a.*,
    (Select Max(b.etnum) From Tab1 b
    where a.etnum = b.etnum) etnum1
    From Tab1 a

    damit "baut" er das Feld etnum1 hinten ran und zeigt alle Zeilen an

    Select a.*
    From (Select etnum, Max(bldat)
    From Tab1
    Group By etnum) x
    join Tab1 a on a.etnum = x.etnum

    hier stösst er sich an dem (select etnum ...

    With x as (Select etnum, Max(bldat)
    From Tab1
    Group By etnum)
    Select a.*
    from x join Tab1 a on a.etnum = x.etnum

    hier meckert er bei dem with rum.

    Was mache ich falsch ? DANKE ERIC

  3. #3
    Registriert seit
    Aug 2001
    Beiträge
    2.961
    Also auf unserer V5R4 Maschine bringen die folgenden beiden Abfragen das gewünschte Ergebnis:

    Code:
    with x as (select etnum, max(etdat) etdat      
                 from tab1                         
                 group by etNum)                   
    select a.*                                     
    from    x join tab1 a                          
         on a.etnum = x.etnum and a.etdat = x.etdat

    Code:
    select a.*                                   
    from  (select etnum, max(etdat) etdat        
                 from tab1                       
                 group by etNum) x               
           join tab1 a on     a.etnum = x.etnum  
                          and a.etdat = x.etdat
    In den Beispielen von gestern hat die Verknüpfung über das Datum gefehlt. Die Abfragen hätten jedoch anstandslos ausgeführt werden müssen (zumindest tun sie das auf meinem System). Im Ergebnis wären jedoch alle Sätze angezeigt worden.

    Mit welchem Release und mit welchem Tool arbeitest Du?

    Birgitta
    Birgitta Hauser

    Anwendungsmodernisierung, Beratung, Schulungen, Programmierung im Bereich RPG, SQL und Datenbank
    IBM Champion seit 2020 - 6. Jahr in Folge
    Birgitta Hauser - Modernization - Education - Consulting on IBM i

  4. #4
    Registriert seit
    Sep 2005
    Beiträge
    53

    Thumbs up VIELEN DANK


    Hallo und vielen Dank,

    Tabelle zum Test habe ich wie folgt erstellt (Maschine PUB1.RZ..)

    CREATE TABLE LIB/TAB1 (ETNUM INT NOT NULL WITH DEFAULT, BLDAT
    DEC ( 8, 0) NOT NULL WITH DEFAULT, TEXT CHAR (50 ) NOT NULL WITH
    DEFAULT, PREIS DEC ( 8, 2) NOT NULL WITH DEFAULT)

    dann z.B. mit :

    INSERT INTO LIB/TAB1 (ETNUM, BLDAT, TEXT, PREIS) VALUES(10003,
    20110101, 'SCHEIBE', 60)

    die "DATEN" eingefügt.

    vorher :

    ===> EDTLIBL ... LIB in Bibliotheksliste eingetragen

    jetzt mit strsql :

    select a.*
    from (select etnum, max(bldat) bldat
    from tab1
    group by etNum) x
    join tab1 a on a.etnum = x.etnum
    and a.bldat = x.bldat

    und

    ETNUM BLDAT TEXT PREIS
    10.000 20.110.301 SCHRAUBE 102,00
    10.001 20.110.301 MUTTER 60,00
    10.002 20.110.301 FEDERRING 40,00
    10.003 20.110.301 SCHEIBE 75,00
    ***** Datenende ********

    DANKE, dass läuft !!!!!
    ERIC

  5. #5
    Registriert seit
    Sep 2005
    Beiträge
    53

    DANKE

    Hallo, fast vergessen, einiges habe ich mit dem SQL-Teacher probiert !

    welches Release pub.rz.. hat, V5R3

    DANKE NOCHMAL ERIC

  6. #6
    Registriert seit
    Jul 2001
    Beiträge
    2.726
    Zitat Zitat von Eric Beitrag anzeigen

    Tabelle zum Test habe ich wie folgt erstellt (Maschine PUB1.RZ..)
    Schön, dass wir gemeinsam helfen konnten ;-) Nicht umsonst nähert sich PUB1 der magischen 16.000

    -h

  7. #7
    Registriert seit
    Jul 2005
    Beiträge
    1.053
    Zitat Zitat von holgerscherer Beitrag anzeigen
    Schön, dass wir gemeinsam helfen konnten ;-) Nicht umsonst nähert sich PUB1 der magischen 16.000

    -h
    Sollte ich zuviel beworben haben ?

    Gruß AS400.lehrling

  8. #8
    Registriert seit
    Sep 2005
    Beiträge
    53

    Thumbs up PUB. ....

    Hallo,

    die Maschine von H.S. wirbt für sich selbst, eine bessere Umgebung zum testen, lernen und üben kann ich mir nicht vorstellen !

    DANKE ERIC

Similar Threads

  1. laufende Nummer in Select
    By cimbala in forum NEWSboard Programmierung
    Antworten: 6
    Letzter Beitrag: 10-05-10, 07:51
  2. Papierfach Nummer 3
    By mack1964 in forum NEWSboard Drucker
    Antworten: 2
    Letzter Beitrag: 25-02-08, 12:36
  3. Relativer Record Nummer
    By RLurati in forum IBM i Hauptforum
    Antworten: 1
    Letzter Beitrag: 27-10-06, 15:13
  4. DDS Font, was verbirgt sich hinter der Nummer?
    By ExAzubi in forum IBM i Hauptforum
    Antworten: 4
    Letzter Beitrag: 18-07-06, 09:31
  5. LPAR Nummer
    By Muchi in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 28-11-05, 11:25

Berechtigungen

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