13.4.09

Recent data from sql server table - TSQL Challenges

Scenario:
Considering, lot of empoloyees with different roles were working in a office. I want to list down the employees recent job role. Is it possible?

What are the complications in this, am having a table listing down the employee role and its role change date. I need to fetch the recent date and the recent employees role.

-- Creating temporary tables
drop table emp
drop table emprole
create table Emp(Employeeid int, roleid int,Updtdate datetime)
create table EmpRole(Roleid int, RoleName varchar(10))

-- Inserting data into the temporary tables
insert into emp values(1,33,'2008-10-11')
insert into emp values(1,44,'2008-10-13' )
insert into emp values(2,55,'2008-10-14')
insert into emp values(2,66,'2008-10-16')


insert into emprole values(33, 'Mgr')
insert into emprole values(44, 'Dev')
insert into emprole values(55, 'Tester')
insert into emprole values(66, 'Lead')

-- Output for the below three select statements
select * from Emp

select * from EmpRole

select Employeeid,rolename from
(
select Employeeid, row_number() over (partition by employeeid
order by UpdtDate desc) as row ,r.rolename
from emp e inner join emprole r on e.roleid=r.roleid
)tblw where row=1



Thanks and Regards,
Venkatesan Prabu .J

No comments:

Post a Comment