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

MS SQL "zeilenweises min()" aus anderer Tabelle

Dieses Thema im Forum "Sonstige Sprachen" wurde erstellt von DaRealMC, 16. März 2015.

  1. DaRealMC

    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 (Text):
    1. Tabelle 1
    2. ID Beschreibung
    3. 1 bla
    4. 2 blub
    5. 3 hihi
    6. 4 moep
    7.  
    8.  
    9. Tabelle 2
    10. ID Ref Datum Text
    11. 1 1 01.02.2015 Das ist Teil1 zu bla
    12. 2 1 02.02.2015 Das ist Teil2 zu bla
    13. 3 1 03.02.2015 Und das Teil3 zu bla
    14. 4 2 04.03.2015 blub hat nur diesen Teil
    15. 5 4 01.04.2015 moep hat mehr, aber
    16. 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 (Text):
    1. bla 01.02.2015
    2. blub 03.02.2015
    3. 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...
     
  2. Improof

    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
     
  3. DaRealMC

    DaRealMC Erfahrenes Mitglied

    Anderweitig habe ich mittlerweile erfahren, dass es mit join, min() und group by geht
    also in etwa so ->
    Code (Text):
    1. 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 ;)
     
Die Seite wird geladen...