У меня следующий запрос:
SELECT
F.IID,
F.E_NUM AS M_E_NUM,
MCI.E_NUM AS MCI_E_NUM,
F.C_NUM AS M_C_NUM,
MCI.C_NUM AS MCI_C_NUM,
F.ET_ID AS M_ET_ID,
EDIE.ET_ID AS ED_INDV_ET_ID,
COUNT(*) OVER (PARTITION BY F.IID) IID_COUNT
FROM FT_T F JOIN CEMEI_T MCI ON F.IID = MCI.IID
JOIN EDE_T EDE ON MCI.E_NUM = EDE.E_NUM
JOIN EDIE_T EDIE ON EDIE.IID = F.IID AND EDIE.ET_ID = EDE.ET_ID
WHERE
F.DEL_F = 'N'
AND MCI.EFF_END_DT IS NULL
AND MCI.TOS = 'BVVB'
AND EDE.PTEND_DT IS NULL
AND EDE.DEL_S = 'N'
AND EDE.CUR_IND = 'A'
AND EDIE.TAR_N = 'Y'
AND F.IID IN
(
SELECT DISTINCT IID
FROM FT_T
WHERE GROUP_ID = 'BG'
AND DEL_F = 'N'
AND (IID, E_NUM) NOT IN
(
SELECT IID, E_NUM FROM CEMEI_T
WHERE TOS = 'BVVB' AND EFF_END_DT IS NULL
)
);
Я в основном собираю информацию из нескольких таблиц и создаю единую запись о них.
Все работает соответствующим образом, за исключением того, что теперь мне нужно выяснить, есть ли в таблице FT_T
две записи с одинаковыми IID
и отобразить их как часть набора результатов.
Я пытался использовать разбиение, но все строки в результирующем наборе возвращают один счет, хотя есть и те, которые имеют 2 записи с одинаковыми IID
в FT_T
.
Причина, по которой я первоначально сказал, что я собираю информацию из нескольких таблиц, заключается в том, что FT_T
может не иметь всей необходимой мне информации, если две записи не доступны для одного и того же IID
, поэтому я имею чтобы получить их из других таблиц JOIN
ed в запросе. Однако мне нужно знать, какие FT_T.IID
имеют две записи в FT_T
(или больше, чем одна).