GROUP BY - Problem

db_gustl

Benutzer
Beiträge
13
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
 
Werbung:
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)
 
Werbung:
Ahh, min max, hatte ich ganz vergessen. :)

Super, danke, jetzt funktioniert es auch wie gewollt.

Gruß und einen schönen Tag!
Gustl
 
Zurück
Oben