Max von einer anderen Max

fohnbit

Benutzer
Beiträge
21
Hallo,

ich habe 8 Tabellen mit je einer "update_at" Spalte als TIMESPAN.

Ich müsste nun das neueste Datum aller 8 Tabellen ausgeben.
MAX(update_at) bei jeder Tabelle ist klar, aber ich müsste dann nochmal über die Ergebnisse das MAX holen.
Da scheitere ich.

Danke!
 
Werbung:
mach ein UNION (ALL) aller Teilergebnisse und darauf ein max().

Aber eigentlich solltest Du Dein Tabellendesign überdenken.
 
Vielen Dank .. aber genau das "darauf ein max()" schaff ich nicht:
Code:
SELECT MAX(update_at) FROM `tab0`
UNION ALL
SELECT MAX(update_at) FROM `tab1`
UNION ALL
SELECT MAX(update_at) FROM `tab2`
UNION ALL
SELECT MAX(update_at) FROM `tab3`
UNION ALL
SELECT MAX(update_at) FROM `tab4`
Wie aber da drüber nochmal ein max()?
 
Erstmal deine Konstruktion (beim schnell überfliegen) nachgebaut:
Code:
create table t1(val int);
create table t2(val int);
create table t3(val int);
create table t4(val int);
create table t5(val int);

Werte in die 5 Tabellen eingefügt:
Code:
insert into t1 values (1);
insert into t2 values (2);
insert into t3 values (3);
insert into t4 values (4);
insert into t5 values (5);

Aus den 5 Tabellen den höchsten Wert selecten: (gelöst über eine Unterabfrage)
Code:
select max(val) from
(select val from t1
union
select val from t2
union
select val from t3
union
select val from t4
union
select val from t5) as val;

Ergebnis:
Code:
5

Ergebnis der Unterabfrage (alleine) wäre in meinem Fall:
Code:
1
2
3
4
5

Ich verwende PostgreSQL, denke aber, dass dieses Beispiel auch in deinem SQL gehen sollte ;)
Einfach im Sub-Select alle Werte in eine Spalte einfügen, dieser einen Namen zuteilen, und aus dieser Unterabfrage mittels der Max-Funktion den höchsten Wert ermitteln.

Wäre für mich auf die schnelle eine plausible Lösung ;)
 
Zuletzt bearbeitet:
Werbung:
Zurück
Oben