I started this before you posted your table names etc so apologies that none of the names match up. Hopefully you'll be able to map this onto your own tables and columns ...
I created some test data as follows
create table employee
(
empid int IDENTITY(1,1),
oldsalary float
)
create table increment
(
empid int,
idate datetime,
newsalary float
)
insert into employee values(1000)
insert into employee values(2000)
insert into employee values(3000)
insert into increment values(1, '1-JAN-2014', 1200)
insert into increment values(1, '1-JAN-2015',1100)
insert into increment values(2, '1-JAN-2013',1500)
And have decided on a test date of '01-MAR-2013'. Note I deliberately made the salaries reduce rather than increase to demonstrate that it is the date that is important not the maximum salary
So based on the data above I'm expecting
empid dateused salary
1 1-JAN-2015 1100
2 (null) 2000
3 (null) 3000
Which can be done as follows
declare @tdate datetime
SELECT @tdate = '01-MAR-2013'
select e.empid, x.idate, coalesce(x.newsalary, e.oldsalary)
from employee e
left outer join
(select empid, max(idate) as mdate from increment
where idate >= @tdate group by empid ) t
on t.empid = e.empid
left outer join
(select empid, idate, newsalary from increment) x
on t.empid=x.empid and t.mdate=x.idate
If I change the date to 01-JAN-2013 I get
empid dateused salary
1 1-JAN-2015 1100
2 1-JAN-2013 2000
3 (null) 3000