Information ausblenden
Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, MariaDB, Oracle, Sql-Server, Postgres, Access uvm

GROUP BY - Problem

Dieses Thema im Forum "Oracle" wurde erstellt von db_gustl, 22 Mai 2012.

  1. db_gustl

    db_gustl Benutzer

    Hallo,

    habe folgende Table:
    Code:
         ZEITSTEMPEL                AUFTRAGS_IDENT
    1  | 2012-05-21 19:05:32 792  | 1011132_ES003_A5E03695175--B
    2  | 2012-05-21 19:28:34 230  | 1011132_ES003_A5E03695175--B
    3  | 2012-05-21 19:34:35 042  | 1011132_ES003_A5E03695175--B
    4  | 2012-05-21 19:38:34 453  | 1011132_ES003_A5E03695175--B
    5  | 2012-05-21 19:52:38 775  | 1011132_ES003_A5E03695175--T
    6  | 2012-05-21 20:39:08 963  | 1004802_B_A5E00432155--B
    7  | 2012-05-21 20:57:13 070  | 1004802_B_A5E00432155--T
    8  | 2012-05-22 06:44:35 085  | 1010967_A_A5E03360313--T
    9  | 2012-05-22 07:40:15 811  | 1002009_A_A5E00263261--T
    10 | 2012-05-22 08:29:46 858  | 1008557_003_A5E00372863--B
    11 | 2012-05-22 09:53:19 192  | 1008557_003_A5E00372863--T
    12 | 2012-05-22 11:02:39 069  | 1010967_A_A5E03360313--B
    
    Jetzt möchte ich die mehrfachen AUFTRAGS_IDENT raus haben, quasi nach denen gruppieren.
    sodass die Table in diesem Beispiel so aussieht:
    Code:
         ZEITSTEMPEL                AUFTRAGS_IDENT
    1  | 2012-05-21 19:05:32 792  | 1011132_ES003_A5E03695175--B
    2  | 2012-05-21 19:52:38 775  | 1011132_ES003_A5E03695175--T
    3  | 2012-05-21 20:39:08 963  | 1004802_B_A5E00432155--B
    4  | 2012-05-21 20:57:13 070  | 1004802_B_A5E00432155--T
    5  | 2012-05-22 06:44:35 085  | 1010967_A_A5E03360313--T
    6  | 2012-05-22 07:40:15 811  | 1002009_A_A5E00263261--T
    7  | 2012-05-22 08:29:46 858  | 1008557_003_A5E00372863--B
    8  | 2012-05-22 09:53:19 192  | 1008557_003_A5E00372863--T
    9  | 2012-05-22 11:02:39 069  | 1010967_A_A5E03360313--B
    
    Aber wenn ich bei oracle nur nach AUFTRAGS_IDENT gruppiere, bringt er mir einen Fehler, was ja nachvollziehbar ist, da alle selects auch in group by sein müssen:
    Code:
    SELECT auf.AUFTRAGS_IDENT, auf.ZEITSTEMPEL FROM TRACEDATEN_AUFTRAG auf GROUP BY auf.AUFTRAGS_IDENT
    ORDER BY auf.ZEITSTEMPEL
    Zudem muss ich den Zeitstempel noch ordnen lassen (ORDER BY)

    Ich habe jetzt keine Idee wie ich das lösen könnte, vielleicht kann mir hier einer helfen?

    Gruß Gustl
     
  2. ukulele

    ukulele Datenbank-Guru

    Alle ausgewählten Spalten müssen auch in GROUP BY stehen. Da der Zeitstempel variiert würde das natürlich keinen Sinn machen. Also nimmt man sich einfach den kleinsten oder größten Zeitstempel:
    Code:
    SELECT    auf.AUFTRAGS_IDENT,
            min(auf.ZEITSTEMPEL) AS ZEITSTEMPEL
    FROM    TRACEDATEN_AUFTRAG auf
    GROUP BY auf.AUFTRAGS_IDENT
    ORDER BY min(auf.ZEITSTEMPEL)
     
    PLSQL_SQL gefällt das.
  3. db_gustl

    db_gustl Benutzer

    Ahh, min max, hatte ich ganz vergessen. :)

    Super, danke, jetzt funktioniert es auch wie gewollt.

    Gruß und einen schönen Tag!
    Gustl
     
Die Seite wird geladen...

Diese Seite empfehlen

  1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies.
    Information ausblenden