[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Jul 2002
    Beiträge
    331

    Gruppierungen in SQL

    Moin moin,

    ich habe eine Datei in der diverse Objekte sind. Jedes Objekt (Haus) kann häufiger vorkommen und ist dann mit einer Laufnummer versehen (d.h. Objekt + Laufnummer = Key).
    Nun habe ich das Objekt und will die letzte Laufnummer dazu haben. Soweit kein Problem.
    Nun will ich aber alle Objekte die mit A beginnen und dort nur jeweils die höchste Laufnummer, dannach dann den Satz mit B, usw.

  2. #2
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... soll das heißen, dass bei einem der key dann Hugo1, Hugo2, ..., Hugo76, Hugo77 ist und bei einem anderen DasDarfDochNichtWahrSein1, ..., DasDarfDochNichtWahrSein104 ist und du dann Hugo77 und DasDarfDochNichtWahrSein104 haben willst?

    D*B
    ... dann gute Nacht

    Zitat Zitat von DEVJO Beitrag anzeigen
    Moin moin,

    ich habe eine Datei in der diverse Objekte sind. Jedes Objekt (Haus) kann häufiger vorkommen und ist dann mit einer Laufnummer versehen (d.h. Objekt + Laufnummer = Key).
    Nun habe ich das Objekt und will die letzte Laufnummer dazu haben. Soweit kein Problem.
    Nun will ich aber alle Objekte die mit A beginnen und dort nur jeweils die höchste Laufnummer, dannach dann den Satz mit B, usw.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  3. #3
    Registriert seit
    Nov 2006
    Beiträge
    102

    A bissl genauer, bitte

    Kannst Du vielleicht Feld- bzw. Spaltennamen angeben und ein Beispiel geben, wie die Daten gespeichert sind? Bis jetzt kann man nur raten, was Du meinst.
    Gruß
    MS (darf ich meine Initialen überhaupt benutzen?)

  4. #4
    Registriert seit
    Apr 2004
    Beiträge
    105
    Wenn ich davon ausgehe, dass die Tabelle wie folgt aussieht:
    PHP-Code:
    OBJEKT       LFDNR
    Alpha            1
    Alpha            2
    Alpha            3
    Beta             1
    Beta             2 
    Dann bekommst du das Ergebnis mit folgendem SQL-Statement:
    PHP-Code:
    select max(OBJEKT), max(LFDNR)   
    from MyLib/MyFile
    group by substr
    (upper(OBJEKT), 11
    PHP-Code:
    MAX OBJEKT )  MAX LFDNR )
      
    Alpha                  3   
      Beta                   2 

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    klassischer Fall von Denkste!

    Alpha 1
    Alpha 2
    Alpha 3
    Amphore 1
    Beta 1
    Beta 2

    liefert:
    Amphore 3
    Beta 1

    D*B

    Zitat Zitat von woki Beitrag anzeigen
    Wenn ich davon ausgehe, dass die Tabelle wie folgt aussieht:
    PHP-Code:
    OBJEKT       LFDNR
    Alpha            1
    Alpha            2
    Alpha            3
    Beta             1
    Beta             2 
    Dann bekommst du das Ergebnis mit folgendem SQL-Statement:
    PHP-Code:
    select max(OBJEKT), max(LFDNR)   
    from MyLib/MyFile
    group by substr
    (upper(OBJEKT), 11
    PHP-Code:
    MAX OBJEKT )  MAX LFDNR )
      
    Alpha                  3   
      Beta                   2 
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    wie wärs mit:

    Code:
    Select Sp1, Objekt From                                            
    (select max(LFDNR) Sp1 , substring(Objekt , 1, 1) Sp2, Objekt from DIE_Table 
    group by Objekt) Tab1                                               
    order by tab1.sp2, tab1.sp1 desc

  7. #7
    Registriert seit
    Nov 2006
    Beiträge
    102
    Jetzt wärs wirklich mal interessant, wie die Felder tatsächlich aussehen und was PRÄZISE gesucht ist, sonst kann man noch viele Vorschläge machen.

  8. #8
    Registriert seit
    Jul 2002
    Beiträge
    331

    Thumbs up

    Hier die genaue Definition:

    Ein Objekt besteht aus 3 x 3 Alpha-Feldern
    LaufNr 3,0

    Nun habe ich Inhalte wie folgt:

    Objekt: LaufNr Beschreibung
    AAA AAA AAA 1 08/15
    AAA AAA AAA 2 4711
    AAA AAA AAA 3 08/16
    AAA AAA AAA 4 4712

    BBB BBB BBB 1 Hallo
    BBB BBB BBB 2 Moin moin
    BBB BBB BBB 3 Salué

    CCC CCC CCC 1 Horst
    CCC CCC CCC 2 Bernd

    usw.

    Ich brauche nun einen Cursor der mir den letzten Wert gibt.
    Bei AAA AAA AAA = 4712
    BBB BBB BBB = Salué
    CCC CCC CCC = Bernd

    Da ich diesen dann ab ändern muss.

  9. #9
    Registriert seit
    Aug 2003
    Beiträge
    1.508
    Hast du das schon probiert?

    Code:
    select sp1, sp2  from                                        
    (select max(LFDNR) sp1 , sp2 from                            
             (select cmdnr , Alpha1 Concat Alpha2 Concat Alpha3 Sp2 from DIE_Table 
              ) tab1                                             
    group by sp2) Tab2                                           
    order by tab2.sp2, tab2.sp1 desc

  10. #10
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    with maxobj as(
    select object1, object2, object3, max(laufnr) laufnr
    from tabelle
    group by object1, object2, object3
    )
    select m.*, t.beschreibung
    from maxobj m
    join tabelle t
    on m.object1 = t.object1
    and m.object2 =t.object2
    and m.0bject3 = t.object3
    and m.laufnr = t.laufnr

    D*B
    Zitat Zitat von DEVJO Beitrag anzeigen
    Hier die genaue Definition:

    Ein Objekt besteht aus 3 x 3 Alpha-Feldern
    LaufNr 3,0

    Nun habe ich Inhalte wie folgt:

    Objekt: LaufNr Beschreibung
    AAA AAA AAA 1 08/15
    AAA AAA AAA 2 4711
    AAA AAA AAA 3 08/16
    AAA AAA AAA 4 4712

    BBB BBB BBB 1 Hallo
    BBB BBB BBB 2 Moin moin
    BBB BBB BBB 3 Salué

    CCC CCC CCC 1 Horst
    CCC CCC CCC 2 Bernd

    usw.

    Ich brauche nun einen Cursor der mir den letzten Wert gibt.
    Bei AAA AAA AAA = 4712
    BBB BBB BBB = Salué
    CCC CCC CCC = Bernd

    Da ich diesen dann ab ändern muss.
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  11. #11
    Registriert seit
    Jul 2002
    Beiträge
    331
    Super so funktionierts

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
  •