У меня есть таблица customers
со столбцами zip
и cust_id
, которая содержит каждый почтовый индекс для каждого клиента.У меня есть справочная таблица zip_state
со столбцами zip
и state
, которая содержит каждый почтовый индекс в каждом штате.
Я хотел бы сделать список состояний для каждого клиента - что-то вроде:
states cust_id
--------- ---------
AL,TX,FL 112
WA,VA 113
FL,CA 114
Я получил следующий запрос:
SELECT LISTAGG( state, ',' ) WITHIN GROUP( ORDER BY state ) states, '112' cust_id
FROM (SELECT DISTINCT state FROM zip_state WHERE zip IN (
SELECT zip FROM customers WHERE cust_id = '112'));
..., который выдает:
states cust_id
--------- ---------
AL,TX,FL 112
Из-за предложения WHERE IN, яЯ могу перечислить состояния только для одного клиента.Как я могу изменить запрос так, чтобы получить желаемый набор результатов, как указано выше?