【发布时间】:2018-11-12 01:36:32
【问题描述】:
我有以下疑问:
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 的记录并将其显示为结果集的一部分之外,一切都相应地工作。
我尝试使用分区,但结果集中的所有行都返回一个计数,即使 FT_T 中有 2 条具有相同 IID 的记录。
我最初说我从多个表中收集信息的原因是,如果同一 IID 没有两条记录可用,FT_T 可能没有我需要的所有信息,所以我有从查询中的其他表JOINed 中检索它们。但是,我需要知道哪些FT_T.IID 在FT_T 中有两条记录(或多于一条)。
【问题讨论】:
-
您能提供一些示例数据并期待结果吗?
标签: sql oracle oracle12c window-functions