У меня 3 таблицы.
employee (emp_id, emp_active, emp_type, emp_status)
employee_salary (emp_id, emp_code, emp_salary)
employee_history (emp_id, emp_ind)
Мне нужно вставить в employee_history
все employee.emp_id
, которые соответствуют всем следующим критериям:
employee.emp_active = 'Y'
employee.emp_id
не существует в employee_history
Более 2 миллионов записей.
Значение emp_ind
будет установлено с использованием следующих правил:
Для emp_type
A и B:
- Если emp_status равен A или B, emp_ind будет Y.
- Если emp_status равен C, а для employee_salary.emp_code C или D значение emp_salary больше 0, тогда emp_ind будет Y.
- Если emp_status равен D или E, emp_ind будет равен N.
- Если emp_status равен F, а employee_salary.emp_code C и D ОБА имеют значение emp_salary, равное 0, тогда emp_ind будет равно N.
Для emp_type
C emp_ind
будет N
Я могу придумать сценарий для выполнения большей части этого, но я теряюсь в том, как кодировать операторы case из-за проверки значений для нескольких записей в таблице employee_salary. Надеюсь, кто-то может предоставить мне сценарий для этого.