c到EndDate的最新记录

c到EndDate的最新记录

本文介绍了显示员工A/c到EndDate的最新记录的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

i have some  tables

name employeeshifts
Shifts 1= A,2=B,3=C

columns are
sno     Shifts      EmployeeID      Startdate                   EndDate                     ChangedDate
1       1               1           2012-12-12 00:00:00.000 2012-12-15 00:00:00.000         2012-12-13 00:00:00.000

2       2               1           2012-12-13 00:00:00.000 2012-12-18 00:00:00.000         null

3       3               1           2012-12-19 00:00:00.000 2012-12-21 00:00:00.000         null

4       1               2           2012-12-12 00:00:00.000 2012-12-15 00:00:00.000         null

5       2               4           2012-12-12 00:00:00.000 2012-12-15 00:00:00.000         null

6       3               5           2012-12-12 00:00:00.000 2012-12-15 00:00:00.000         null

7       1               9           2012-12-16 00:00:00.000 2012-12-18 00:00:00.000         2012-12-16 00:00:00.000

8       2               9           2012-07-07 00:00:00.000 2012-08-17 00:00:00.000         null

there is employee table as well

what i need to show
last record of employee where employee has performed or is performing duty

suppose
employee 1 has performed his last duty a/c to above table
2012-12-21 00:00:00.000 in C shifts
Employee 9 will perform  will be performing duty
2012-08-17 00:00:00.000 in B shifts

Just like this i need to show last record where employee performs duty

thanks

推荐答案

order by EndDate  desc


并根据需要添加 group by employeeid

问候
Sebatian


and add group by employeeid if needed

Regards
Sebatian



SELECT sno
, EmployeeID
, CASE WHEN Shifts = 1 THEN 'A'
       WHEN Shifts = 2 THEN 'B'
       WHEN Shifts = 3 THEN 'C' END AS Shifts
, StartDate
, EndDate
, ChangedDate
 FROM employeeshifts
WHERE sno IN
(
    SELECT MAX(sno) AS sno FROM employeeshifts
    GROUP BY EmployeeID
)


这篇关于显示员工A/c到EndDate的最新记录的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-30 05:17