Каждый год сотрудник проходит обязательные курсы. Мне нужно получить список сотрудников и их последний пройденный курс, например, FS (пожарная безопасность). Ниже мой запрос. Проблема в том, что он показывает два или три пройденных курса для некоторых сотрудников.
Попытка устранить неполадки в записи этих сотрудников показывает последний пройденный курс, когда я явно выбираю только одного сотрудника по его идентификатору. Что я делаю неправильно?
Select
h.empno,
p.p_lname,
p.p_fname,
h.classid,
h.course,
h.certcode,
h.startdate,
h.enddate,
h.enrstat
from dbo.nemphist h
join dbo.hrpersnl p
on h.empno=p.p_empno
where h.course='FS'and
-- p.p_empno='99999123'and
p.p_active<>'T' and
p.p_company='XXX'and
h.enrstat='COMP' and
h.startdate in
(Select max(startdate)
from dbo.nemphist h
join dbo.hrpersnl p
on h.empno=p.p_empno
-- h.company=p.p_company
where h.course='FS'and
-- p.p_empno=''99999123''and
p.p_active<>'T' and
p.p_company='XXX' and
h.enrstat='COMP'
Group by h.empno)
order by p.p_lname
Я исправил свой запрос.