Wählen Sie den Mindestwert für jede Zeilenverbindung durch eine andere Tabelle aus

Ich habe folgende Tabelle:

Table1 Table2 CardNo ID Record Date ID Name Dept 1 101 8.00 11/7/2013 101 Danny Green 2 101 13.00 11/7/2013 102 Tanya Red 3 101 15.00 11/7/2013 103 Susan Blue 4 102 11.00 11/7/2013 104 Gordon Blue 5 103 12.00 11/7/2013 6 104 12.00 11/7/2013 7 104 18.00 11/7/2013 8 101 1.00 12/7/2013 9 101 10.00 12/7/2013 10 102 0.00 12/7/2013 11 102 1.00 12/7/2013 12 104 3.00 12/7/2013 13 104 4.00 12/7/2013 

Ich möchte, dass das Ergebnis so aussieht:

 Name Dept Record Danny Green 8.00 Tanya Red 11.00 Susan Blue 12.00 Gordon Blue 18.00 

wobei das Ergebnis nur den Minimalwert von "datasatz" für jeden "Namen" anzeigt und nach dem ausgewählten date gefiltert wird. Ich benutze SQL.

Benutzen:

 select t2.Name, t2.Dept, min(t1.Record) from table1 t1 join table2 t2 on t2.ID = t1.ID group by t2.ID, t2.Name, t2.Dept 

oder

 select t2.Name, t2.Dept, a.record from table2 t2 join ( select t1.ID, min(t1.Record) [record] from table1 t1 group by t1.ID )a on a.ID = t2.ID 

Um die Abfrage zu filtern, fügen Sie where Klausel hinzu, z. B .:

 select t2.Name, t2.Dept, min(t1.Record) from table1 t1 join table2 t2 on t2.ID = t1.ID where t1.Date = '11/7/2013' group by t2.ID, t2.Name, t2.Dept 

Bitte versuche:

 Select b.Name, b.Dept, MIN(Record) Record from Table1 a join Table2 b on a.ID=b.ID GROUP BY b.Name, b.Dept 
 select b.Name, b.Dept, min(a.Record) from Table1 a,Table2 b where a.ID=b.ID group by a.Record