## Контекст (таблицы и пример данных) ### Таблицы - `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');
```