У меня есть следующая (пример) таблица:
+----------+--------------+------------+------------+------------+
| Customer | Subscription | Status | Start Date | End Date |
+----------+--------------+------------+------------+------------+
| 1 | 1a001 | Pending | 02.02.2020 | |
| 1 | 1b002 | Pending | 02.02.2020 | 05.02.2020 |
| 1 | 1c003 | Rejected | 02.02.2020 | |
| 1 | 1d004 | Incomplete | 02.02.2020 | |
| 1 | 1e005 | Pending | 07.02.2020 | |
| 1 | 1f006 | Active | 07.02.2020 | |
| 2 | 2a001 | Pending | 02.02.2020 | |
| 2 | 2b002 | Pending | 02.02.2020 | |
| 2 | 3c003 | Rejected | 02.02.2020 | |
| 2 | 4d004 | Incomplete | 02.02.2020 | |
| 2 | 5e005 | Pending | 07.02.2020 | 07.02.2020 |
| 2 | 6f006 | Active | 07.02.2020 | |
+----------+--------------+------------+------------+------------+
Цель состоит в том, чтобы выбрать только активных клиентов. Допущения и условия:
- У одного Customer_no может быть много подписок.
- Активный клиент = Клиент, у которого есть хотя бы одна Активная подписка.
- Активная подписка - это когда: Status = Active, start_date is> = sysdate () и end_date отсутствует.
У меня будет очень длинный список состояний, которые можно сопоставить с помощью оператора CASE. Есть ли идея, как выбрать отдельных активных клиентов на основе этого примера? Я начинающий и не знаю, как начать с этой задачи.
Спасибо, Павел