Vinzenz Mai: UNION, GROUP BY und MAX

Beitrag lesen

Hallo Matty,

aha, Du möchtest also nur die "neuesten" Werte zu jeder id haben. Ein ganz
neuer Aspekt, der in Deinem Ausgangsposting nicht enthalten ist. Das kannst
Du ganz einfach mit einer GROUP-BY-Klausel und der entsprechenden
Aggregatsfunktion lösen.

Nein du hast es nicht verstanden.

dann hast Du es falsch erklärt. Dein Beispiel zeigt _eindeutig_, dass Du nur
an den jeweils größten Werten je id interessiert bist, gleichgültig in welcher Tabelle sie sich befinden.

Ich möchte nicht die neusten Werte zu jeder ID haben sondern ich möchte die aktuellsten Werte aus mehreren Tabellen haben, wobei die a_id nur atomar erscheinen soll. Ich glaube langsam, dass das nicht mit SQL zu lösen ist :(

wo ist das Problem? Bei _nur_ zwei Spalten läßt sich das problemlos mit
GROUP BY und MAX() erledigen.

Ergebnis

id  1  datum absteigend

185  3  2008-02-11 11:59:06 <-doppelt
184  2  2008-02-11 11:56:00
185  3  2008-02-11 11:46:56 <-doppelt
181  6  2008-02-11 11:38:00
177  6  2008-02-11 11:38:00
182  6  2008-02-11 11:37:00
185  3  2008-02-11 11:36:23 <-doppelt
185  1  2008-02-11 11:34:00 <-doppelt
176  6  2008-02-11 11:06:00

Die zweite Spalte hier dient mir nur dazu, zu sehen aus welchem Union die Row kommt.

die zweite Spalte macht den Ansatz mit GROUP-BY natürlich zunichte. Du darfst
GROUP BY natürlich erst _auf das Ergebnis_ der UNION-Operation anwenden.

Freundliche Grüße

Vinzenz