每位员工都有机会记录最多3次访问的访问日期。
如何确定员工的最新访问日期并增加3年?
我尝试了以下内容:
select top 1 dateOfVisit from table
where empid=123
Order by dateOfVisit DESC
这并没有给我最新的访问日期。
然后我需要增加3年。
答案 0 :(得分:2)
以下是显示以下所有三个查询的SQL Fiddle。如果您需要讨论某些内容,请查看并编辑它。
可以添加3年 select top (1) DATEADD(year, 3, dateOfVisit) [DateOfVisitPlus3Years]
from [table]
where empid=123
order by dateOfVisit DESC;
您在标题中以及文本中的不同时间使用了单数形式“employee”,并为单个员工提供了查询。但是,如果您实际上需要跨多个员工,则只需使用MAX()
select empid, DATEADD(year, 3, max(dateOfVisit)) [DateOfVisitPlus3Years]
from [table]
group by empid;
以下查询为您提供每位员工的最后一次(最近一次)dateOfVisit与当前日期之间经过的天数(即“今天”)
select empid,
DATEDIFF(day, max(dateOfVisit), CURRENT_TIMESTAMP) [DaysSinceLastVisit]
from [table]
group by empid;