Sql 在最近的日期查找最新的
我有一个表格,其中包含员工姓名、他们预订工作的日期和预订时间,我希望找到每个员工的最新日期和该日期的最新时间 雇员 日期 时间 做记号 09/05/21 08:00 马特 08/05/21 07:00 马特 09/05/21 07:00 保罗 08/05/21 06:59 做记号 10/05/21 10:20Sql 在最近的日期查找最新的,sql,max,Sql,Max,我有一个表格,其中包含员工姓名、他们预订工作的日期和预订时间,我希望找到每个员工的最新日期和该日期的最新时间 雇员 日期 时间 做记号 09/05/21 08:00 马特 08/05/21 07:00 马特 09/05/21 07:00 保罗 08/05/21 06:59 做记号 10/05/21 10:20 您可以使用行编号(): 注意:通常最好将日期和时间存储在一列中,而不是两列中 create table yourtable (Employee varchar(50),Date date
您可以使用
行编号()
:
注意:通常最好将日期和时间存储在一列中,而不是两列中
create table yourtable (Employee varchar(50),Date date, Time time);
insert into yourtable values('Mark', '09/05/21', '08:00');
insert into yourtable values('Matt', '08/05/21', '07:00');
insert into yourtable values('Matt', '09/05/21', '07:00');
insert into yourtable values('Paul', '08/05/21', '06:59');
insert into yourtable values('Mark', '10/05/21', '10:20');
with EmployeeLatestBooking as
(
select employee,date,time,row_number()over(partition by employee order by date ,time )rn
from yourtable
)
select Employee,date,time from EmployeeLatestBooking where rn=1
GO
输出:
雇员
日期
时间
做记号
2021-09-05
08:00:00.0000000
马特
2021-08-05
07:00:00.0000000
保罗
2021-08-05
06:59:00.0000000
到目前为止你做了什么?为什么要分别存储日期和时间?请在版本中注明您的dbms名称。非常感谢
create table yourtable (Employee varchar(50),Date date, Time time);
insert into yourtable values('Mark', '09/05/21', '08:00');
insert into yourtable values('Matt', '08/05/21', '07:00');
insert into yourtable values('Matt', '09/05/21', '07:00');
insert into yourtable values('Paul', '08/05/21', '06:59');
insert into yourtable values('Mark', '10/05/21', '10:20');
with EmployeeLatestBooking as
(
select employee,date,time,row_number()over(partition by employee order by date ,time )rn
from yourtable
)
select Employee,date,time from EmployeeLatestBooking where rn=1
GO