对于我正在研究的项目。我必须在薪金方面做一个检查约束。Emp_ID xxx的薪水不能高于其Manger_id xxx的薪水。
例如,我有以下数据,该数据在同一表中:
Emp_ID manager_id salary
1 2 1000
2 2 2000
3 4 3000
4 5 5000
因此,emp_id 1的管理者为manager_id 2,manager_id 2为emp_id 2
所以我尝试了这个:
选择员工的薪水在哪里employee_id(SELECT员工编号=经理编号)
我获得了Emp_id 2 / Manager_id2的薪水,但没有从Manager_id4获得薪水,因为他也有其他经理。
I think i have the solution :-)
Create PROCEDURE xx
--
--
--
DECLARE @salary_cap int;
SET @salary_cap = (SELECT salary FROM Employee WHERE employee_id = @manager_id)
IF @salary <= @salary_cap
BEGIN
UPDATE Employee SET salary = @salary WHERE employee_id = @employee_id;
SELECT * FROM Employee WHERE employee_id = @employee_id;
END
ELSE
BEGIN
RAISERROR ('Employee Salary is to high stay below Manager Salary',16,1)
RETURN
END
END