У меня есть две таблицы, которые я хочу использовать в своем запросе, tblEmployee
и tblEmpPerformance
Требование:
Использование tblEmployee.EmpID, tblEmployee.ManagerID
, перейти через tblEmpPerformance
ипосмотрите на tblEmpPerformance.SalaryRaise
и tblEmpPerformance.CommissionRaise
и обновите tblEmployee
соответственно.
Только одно из этих двух полей будет иметь ненулевое значение для каждой записи в tblEmpPerformance
if tblEmployee.EmpID = tblEmpPerformance.EmpID then
If tblEmpPerformance.Salary > 0 then
update tblEmployee
Set CompensationType = 'Salary'
Where tblEmployee.EmpID = tblEmpPerformance.EmpID
AND tblEmployee.ManagerID = tblEmpPerformance.ManagerID
update tblEmployee
Set SalaryRaise = tblEmpPerformance.SalaryRaise
Where tblEmployee.EmpID = tblEmpPerformance.EmpID
AND tblEmployee.ManagerID = tblEmpPerformance.ManagerID
If tblEmpPerformance.Commission > 0 then
update tblEmployee
Set CompensationType = 'Commission'
Where tblEmployee.EmpID = tblEmpPerformance.EmpID
AND tblEmployee.ManagerID = tblEmpPerformance.ManagerID
update tblEmployee
Set CommissionRaise = tblEmpPerformance.CommissionRaise
Where tblEmployee.EmpID = tblEmpPerformance.EmpID
AND tblEmployee.ManagerID = tblEmpPerformance.ManagerID
Если не найдено совпадений EmpID
, посмотрите в tblContractorPerformance
if tblEmployee.EmpID = tblContractorPerformance.EmpID then
If tblContractorPerformance.Salary > 0 then
update tblEmployee
Set CompensationType = 'Salary'
Where tblEmployee.EmpID = tblContractorPerformance.EmpID
AND tblEmployee.ManagerID = tblContractorPerformance.ManagerID
....
....
....
....
Next tblEmployee.EmpID
Обновление: DOH !! .. Как лучше всего написать этот SQL-запрос.Хранится проц или курсор?Любое предложение о том, как разработать запрос, также очень помогло бы