mowch 10 Geschrieben 8. April 2015 Melden Geschrieben 8. April 2015 Hallo,ich hab in SQL 2 Tabellen: Tabelle 1: NR NAME1 Mustermann 15 Mayr 33 Bacher20 Max Tabelle 2:NR DATUM Status 1 14:00 1 15 14:00 1 1 15:00 1 33 11:00 1 15 17:30 1 33 15:00 1 Mein Select sieht nun so ausSelect 1.Nr, 1.Name, 2.Datum, 2.Status from Tabelle1 as 1 left join Tabelle2 as 2on 1.NR = 2.NR Als ergebniss bekomme ich jetzt natürlich mehrere Einträge pro NR da es ja mehrere Datums gibt.Wie kann ich den select machen, das ich von der Tabelle 2 nur den letzten Eintrag (letztes Datum) retour bekomme?Ergebniss sollte dann so aussehen 1 15:00 115 17:30 133 15:00 120 NULL NULL DANKE Zitieren
Cybquest 36 Geschrieben 8. April 2015 Melden Geschrieben 8. April 2015 Evtl. mit Max(2.Datum) aggregieren und dann mit Group by gruppieren. Zitieren
mowch 10 Geschrieben 8. April 2015 Autor Melden Geschrieben 8. April 2015 mit max geht es nur wenn in Tabelle 2 die werte eindeutig sind, ich hab jetzt eine fortlaufende ID eingebaut, somit haut es hin Zitieren
Cybquest 36 Geschrieben 8. April 2015 Melden Geschrieben 8. April 2015 Ein SELECT NR, Max(DATUM) FROM Tabelle2 GROUP BY NR bringt zu jeder NR das letzte Datum. Aber wenn es mit Deiner Lösung tut, ist's ja auch gut :) Zitieren
flyingmeniskus 0 Geschrieben 23. April 2015 Melden Geschrieben 23. April 2015 (bearbeitet) mein Vorschlag: komplett, zum nachvollziehen: DECLARE @T1 AS TABLE(Nr INT, Name VARCHAR(50)) INSERT INTO @T1 SELECT 1,'Mustermann' INSERT INTO @T1 SELECT 15 ,'Mayr' INSERT INTO @T1 SELECT 33 ,'Bacher' INSERT INTO @T1 SELECT 20 ,'Max' DECLARE @T2 AS TABLE (Nr INT, Uhrzeit TIME, Status INT ) INSERT INTO @T2 SELECT 1,'14:00',1 INSERT INTO @T2 SELECT 15,'14:00',1 INSERT INTO @T2 SELECT 1,'15:00',1 INSERT INTO @T2 SELECT 33,'11:00',1 INSERT INTO @T2 SELECT 15,'17:30',1 INSERT INTO @T2 SELECT 33,'15:00',1 INSERT INTO @T2 SELECT 34,'19:00',1 SELECT * FROM @T1 t1 LEFT JOIN (SELECT Nr,MAX(Uhrzeit) Datum FROM @T2 GROUP BY Nr) ua ON t1.nr=ua.Nr SELECT * FROM @T1 t1 FULL JOIN (SELECT Nr,MAX(Uhrzeit) Datum FROM @T2 GROUP BY Nr) ua ON t1.nr=ua.Nr Nr Name Nr Uhrzeit1 Mustermann 1 15:00:00 15 Mayr 15 17:30:0033 Bacher 33 15:00:0020 Max NULL NULL Nr Name Nr Uhrzeit1 Mustermann 1 15:00:0015 Mayr 15 17:30:0033 Bacher 33 15:00:0020 Max NULL NULLNULL NULL 34 19:00:00 bearbeitet 23. April 2015 von flyingmeniskus Zitieren
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.