I have a table called Employees and need to update the SalaryId of the Employee by 1 if 1 is inputed and decrease it by -1 in case -1 is inputed. I think my approach has totally wrong logic, but I cannot find what I wanna do although I hav been searching for a while. Can someone assist me understand what I am doing wrong?
ALTER PROCEDURE "dba"."updatePosition"(IN rating int, @PersonalID int )
AS BEGIN
IF rating = 1
UPDATE dba.Employees
IF (dba.Employees.SalaryId > 1 && dba.Employees.SalaryId < 7)
SET dba.Employees.SalaryId = dba.Employees.SalaryId + 1
WHERE dba.Employees.PersonalID = @PersonalID
ELSEIF rating = -1
UPDATE dba.Employees
SET dba.Employees.SalaryId = dba.Employees.SalaryId - 1
IF dba.Employees.SalaryId < 1
dba.Employees.SalaryId = 1
IF dba.Employees.SalaryId > 7
dba.Employees.SalaryId = 7
WHERE dba.Employees.PersonalID = @PersonalID
END
This doesn't make sense to me:
UPDATE dba.Employees
IF (dba.Employees.SalaryId > 1 && dba.Employees.SalaryId < 7)
SET dba.Employees.SalaryId = dba.Employees.SalaryId + 1
WHERE dba.Employees.PersonalID = @PersonalID
Perhaps you want:
UPDATE dba.Employees
SET dba.Employees.SalaryId = dba.Employees.SalaryId + 1
WHERE dba.Employees.PersonalID = @PersonalID AND
dba.Employees.SalaryId > 1 AND
dba.Employees.SalaryId < 7