wake-up-neo.net

Wählen Sie den Mindestwert für jede Zeilenverbindung von einer anderen 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 ist:

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

dabei zeigt das Ergebnis nur den Mindestwert von "Record" für jeden "Namen" und wird nach dem ausgewählten Datum gefiltert. Ich benutze SQL.

12
wood

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

Fügen Sie zum Filtern der Abfrage eine where-Klausel hinzu, z.

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
21

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
1
TechDo
select 
        b.Name,
        b.Dept,
        min(a.Record)
from Table1 a,Table2 b 
where
        a.ID=b.ID 
group by 
        a.Record
0
The Dictator