0
每年都有員工參加強制課程。我需要得到一份員工名單和他們最近完成的課程,例如FS(消防安全)。以下是我的查詢。問題在於它顯示了一些員工完成的兩門或三門課程。sql,使用max(列名稱)不起作用來選擇最新完成的couse
試圖對這些員工的記錄進行故障排除時,它會顯示最近完成的課程,當我僅在員工ID上僅顯式選擇一名員工時。我究竟做錯了什麼?
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
我糾正了我的查詢。
對於什麼數據庫? – 2010-07-21 18:17:51