Есть две таблицы: client
и contract
.
таблица клиентов:
client_code INT pk
status VARCHAR
У клиента может быть 1 или более контрактов. У клиента есть столбец состояния, в котором указано, есть ли у него действительные контракты - значения являются «активными» или «неактивными». Договор указан для клиента со статусом active .
таблица контрактов:
contract_code INT pk
client_code INT pk
end_date DATE
Контракт имеет конечную дату. Дата окончания контракта до сегодняшнего дня является истекшим контрактом.
ТРЕБОВАНИЕ: для отчета требуются все активные клиенты с контрактами, но со всеми (не некоторыми) контрактами, срок действия которых истек. Некоторые примеры данных приведены ниже:
Данные клиента:
client_code status
----------------------------------
1 active
2 inactive
3 active
4 active
Данные контракта:
contract_code client_code end_date
-------------------------------------------------------------
11 1 08-12-2018
12 1 09-12-2018
13 1 10-12-2018
31 3 11-31-2018
32 3 10-30-2018
41 4 01-31-2019
42 4 12-31-2018
Ожидаемый результат:
client_code
-------------
1
РЕЗУЛЬТАТ: У этого клиента (client_code = 1) есть все контракты с истекшим сроком действия: 08-12-2018
, 09-12-2018
и 10-12-2018
.
Мне нужна помощь, чтобы написать запрос SQL, чтобы получить этот результат. Я не уверен, какие конструкции я должен использовать - можно указать, что я могу попробовать. База данных MySQL 5.5.