SQL Server combining 2 rows into 1 from the same table
I have a table with an JobID (PK), EmployeeID (FK), StartDate, EndDate containing data such as:
1, 10, '01-Jan-2010 08:00:00', '01-Jan-2010 08:30:00'
2, 10, '01-Jan-2010 08:50:00', '01-Jan-2010 09:05:00'
3, 10, '02-Feb-2010 10:00:00', '02-Feb-2010 10:30:00'
I want to return a record for each EndDate for a Job and then the same employees StartDate for his next immediate job (by date time). So from the data above the result would be
开发者_JS百科Result 1: 10, 01-Jan-2010 08:30:00, 01-Jan-2010 08:50:00
Result 2: 10, 01-Jan-2010 09:05:00, 02-Feb-2010 10:00:00
Greatly appreciate any help!
Lance's code has a problem. Here is the corrected query that will work:
select j1.JobID, j1.EmployeeID, j1.EndDate,
(
select top 1 j2.StartDate
from Job j2
where j2.EmployeeID = j1.EmployeeID
and j2.StartDate > j1.EndDate
order by j2.StartDate
) as NextStartDate
from Job j1
Something like this would be one way:
select j1.JobID, j1.EmployeeID, j1.EndDate,
(
select top 1 j2.StartDate from Job j2
where j2.EmployeeID = j1.EmployeeID
order by j2.StartDate
where j2.StartDate > j1.EndDate
) as NextStartDate
from Job j1
Good luck!
精彩评论