2008-12-09 2 views
2

Основная таблица содержит идентификатор и имя_файла.
Таблица курса содержит идентификатор, название курса.
Detail таблица содержит ID, MasterID, CourseID, StartDate, EndDateSQL-запрос для master-detail

Я хочу, чтобы создать отчет, который показывает список лиц (PERSONNAME) и только последний, конечно, они взяли (так что каждый человек в списке только один раз):

PersonName - CourseName - StartDate - EndDate

ответ

2
select m.PersonName, c.CourseName 
from Master m 
join Detail d on d.MasterID = m.ID 
join Course c on c.ID = d.CourseID 
where d.StartDate = (select max(d2.StartDate) 
         from Detail d2 
         where d2.MasterID = m.ID 
        ) 
0
Select personname,coursename from details 
    inner join course on course.id = details.courseid 
    inner join master on master.id = details.masterid 
    inner join (select max(startdate) , courseid,masterid 
    from details group by masterid,courseid) as tb1 
    on tb1.courseid = details.courseid and tb1.masterid = details.masterid 
Смежные вопросы