MS SQL "zeilenweises min()" aus anderer Tabelle


DaRealMC

Erfahrenes Mitglied
Hallo zusammen,

ich sitze mal wieder an meiner SQL-Auswertung und bruache etwas, was ich nicht mal richtig Beschreiben kann.

Tabelle 1
Code:
Tabelle 1
ID Beschreibung
1 bla
2 blub
3 hihi
4 moep


Tabelle 2
ID Ref Datum Text
1 1 01.02.2015 Das ist Teil1 zu bla
2 1 02.02.2015 Das ist Teil2 zu bla
3 1 03.02.2015 Und das Teil3 zu bla
4 2 04.03.2015 blub hat nur diesen Teil
5 4 01.04.2015 moep hat mehr, aber 
6 4 15.03.2015 mit umgekehrtem Datum!

ich benötige jetzt zu jedem Eintrag aus Tabelle 1 das kleinste Datum aus Tabelle 2
->
Code:
bla 01.02.2015
blub 03.02.2015
moep 15.03.2015

Wenn ich jetzt einfach nur min(Datum) mache, habe ich ja nur 01.02.2015
Vielleicht steh ich nur grad auf dem Schlauch...
 

Improof

Erfahrenes Mitglied
Hi,

kenn mich nicht aus mit MS SQL, aber da müsste es doch auch ein GROUP BY geben oder?? Also nach Ref gruppieren (brauchst dann auch gar keinen Join mehr, weil in Ref ja schon die ID steht, außer du willst die Beschreibung aus Tabelle 1 dazu, dann wirds aber komplizierter) und dann die Ref und min(Datum) selektieren.

Gruß
Daniel
 

DaRealMC

Erfahrenes Mitglied
Anderweitig habe ich mittlerweile erfahren, dass es mit join, min() und group by geht
also in etwa so ->
Code:
select min(datum), beschreibung, text from tabelle1 t1, tabelle2 t2 where t1.id = t2.ref group by t1.id, t1.beschreibung, t2.text
In der Tat ist das total banal und ich bin von mir selbst ein wenig enttäuscht, da nicht drauf gekommen zu sein :(

jetzt ist meine Herausforderung, dass ich das min() nicht nur aus T2, sondern T2 und T3 brauche ;)