У меня всего 3 стола. Одна таблица называется CONTACTINFO
с CNTCT_ID
в качестве первичного индекса.
Вторая таблица — CONTACTMAP
, которая связывает клиента (CUSTNUM
) со всей контактной информацией (такими данными, как имя, должность, номер телефона и т. д.).
Итоговая таблица представляет собой полный список клиентов с одним столбцом, в котором есть постоянно обновляемый список всех наших клиентов.
Мой код ниже извлекает самую последнюю запись для custnum
84574. Но мне нужно, чтобы он извлекал результаты для всех custnum
в полном списке клиентов custlist
.
select
A. CUST_TYPE
,A.CINSERT_DT
,A.CNTCT_ID
from CONTACTINFO a
JOIN CONTACTMAP B
ON A.CNTCT_ID = B.CNTCT_ID
where b. CUSTNUM in (‘84574’)
and A. CUST_TYPE in (‘PAYER’)
qualify rank() over (partition by a. CUST_TYPE order by A. CINSERT_DT desc) = 1
Вот мои таблицы CONTACTINFO TABLE
CNTCT_ID CUST_TYPE
1 PAYER
2 OWNER
3 BUYER
CONTACTMAP Table
CNTCT_ID CUSTNUM
1 84574
2 99457
3 54187
TABLE3
CUSTNUM
84574
99457
54187
CUSTNUM
и изменитеPARTITION BY
наCUSTNUM
вместоCUST_TYPE
(или используйте оба, если вы хотите одну строку для каждого типа) - person dnoeth   schedule 08.02.2016