## Контекст (таблицы и пример данных) ### Таблицы - `salary_rates(employee_id, valid_from, valid_to

SQL Developer Senior
## Контекст (таблицы и пример данных) ### Таблицы - `salary_rates(employee_id, valid_from, valid_to, monthly_salary)` - `payroll(employee_id, pay_month)` > `valid_to` может быть NULL (действует до бесконечности). ### Пример данных **salary_rates** | employee_id | valid_from | valid_to | monthly_salary | |-----------:|------------|------------|---------------:| | 1 | 2025-01-01 | 2025-06-30 | 3000 | | 1 | 2025-07-01 | NULL | 3500 | **payroll** | employee_id | pay_month | |-----------:|------------| | 1 | 2025-06-01 | | 1 | 2025-07-01 | --- ## Задача Для каждой записи payroll подобрать актуальную ставку по периоду. Вернуть: `employee_id`, `pay_month`, `monthly_salary`.
Ответы
```sql SELECT p.employee_id, p.pay_month, r.monthly_salary FROM payroll p JOIN salary_rates r ON r.employee_id = p.employee_id AND p.pay_month >= r.valid_from AND p.pay_month <= COALESCE(r.valid_to, DATE '9999-12-31'); ```