0
SELECT E.SSN AS SocialSecurityNumber ,
E.Name + ' ' + E.LastName AS FullName ,
J.Job ,
R.Date ,
R.STime AS StartTime,
R.ETime AS EndTime,
CASE WHEN R.Date BETWEEN O.SDate AND O.EDate THEN O.OffID
ELSE 0
END AS OffReason
FROM Resume AS R
INNER JOIN Employees AS E ON E.ID = R.EmpID
INNER JOIN Jobs AS J ON J.ID = E.JobID
LEFT JOIN Offs AS O ON E.ID = O.EmpID
AND R.Date BETWEEN O.SDate AND O.EDate
WHERE E.JobLeft = 0
AND R.Date BETWEEN '2014-11-26 00:00:00'
AND '2014-11-26 23:59:59'
ORDER BY FullName
我为我的员工简历报告程序编写了此SQL查询。我想在员工开始工作时检索,如果他们有工作不上班的原因,则返回reasonId或者如果他们没有检索到0。在此查询中,当存在两个或更多非理由时,结果返回重复行为同一名员工。像假期&国定假日。我搜索了这个,但无法找到相同的情况。删除的行不重要;一个不合理的情况对我来说已经足够了。所以我尝试了DISTINCT关键字,但它不能解决问题。那么我能做些什么来解决这个问题?SQL查询返回重复行
哦,非常感谢你=),它的工作! – mimozz 2014-12-01 16:56:13