views:

55

answers:

2

I have a table:

Employee (employeeID)
EmployeeRank (rankID, employeeID)

Now I have another table that has all the employee's that are going to get a raise.

DueForRaise (rankID, employeeID)

I have to insert all the employees that are in DUeForRaise into the EmployeeRank table ONLY if they are not already there with the same rank.

I am doing this update for a particlar rankID, @rankID.

Would this work?

INSERT EmployeeRank ( rankID, employeeID)
SELECT rankID, employeeID
FROM DueForRaise dfr
      OUTER JOIN EmployeeRank er er.employeeid = dfr.employeeid)
WHERE dfr.rankID = @rankID
+5  A: 

How about:

insert into EmployeeRank
select * from DueForRaise p
where NOT EXISTS(
    SELECT * FROM EmployeeRank WHERE rankID=p.rankID and employeeID=p.employeeID
);
Nestor
A: 

IF NOT EXISTS(SELECT * FROM EmployeeRank WHERE rankID = @rankID AND employeeID = @employeeID )

INSERT INTO EmployeeRank (rankID, employeeID) VALUES (@rankID, @employeeID)

KiwiNige
thanks...but employeeID is not a parameter :)
mrblah