【发布时间】:2015-01-19 20:29:07
【问题描述】:
我有问题。我尝试显示表中的重复项。我在 pl sql 中的代码
SELECT intermediary_nr, beneficiary_role, contract_nr
FROM (SELECT *
from (select intermediary_nr,
beneficiary_role,
max(contract_nr) contract_nr
from boscs.atcs_commission_beneficiary
where beneficiary_role = 'LEAD'
and intermediary_nr is not null
group by intermediary_nr, beneficiary_role
ORDER BY dbms_random.value)
union all
SELECT *
from (select intermediary_nr,
beneficiary_role,
max(contract_nr) contract_nr
from boscs.atcs_commission_beneficiary
where beneficiary_role = 'SUP_FOR_LEAD'
and intermediary_nr is not null
group by intermediary_nr, beneficiary_role
ORDER BY dbms_random.value)
union all
SELECT *
from (select intermediary_nr,
beneficiary_role,
max(contract_nr) contract_nr
from boscs.atcs_commission_beneficiary
where beneficiary_role = 'COAGENT'
and intermediary_nr is not null
group by intermediary_nr, beneficiary_role
ORDER BY dbms_random.value))
选择 intermediary_nr、beneficiary_role、contract_nt if a.contract_nr = b.contract_nr = c.contract_nr
这个关系我很感兴趣。我请关于如何解决这个问题的提示。有什么想法吗?我只想显示与 a、b、c 相同的 contract_nr 信息。其余的没有。有谁知道如何完成这些问题?
【问题讨论】:
-
我没有看到问题。我不太了解您要完成的工作。我不确定您发布的代码是否引发错误,是否无法产生您想要的结果,或者其他什么。我无法理解为什么你会在这种查询中
order by dbms_random.value。发布一个可重现的测试用例以及所需的结果将是一个很好的帮助。 -
我的代码会抛出与子查询匹配的所有 3 个结果。我只想显示符合上述关系的重复项 contract_nr 第一个子查询 = contract_nr of 2 subquery = contract_nr of 3 个子查询
-
抱歉,我不确定在这种情况下“仅重复”是什么意思。也许您希望使用
intersect而不是union all,但这只是我在黑暗中摸索。一个可重现的测试用例可能会很有帮助。 -
![在此处输入图像描述][1] [1]:i.stack.imgur.com/TzKbF.png 如果 a.contract_nr = b.contract_nr = c.contract_nr 这个关系我感兴趣,请选择 intermediary_nr、beneficiary_role、contract_nt。我请关于如何解决这个问题的提示。
-
如果您想发布更多信息,请编辑您的问题。
标签: sql database plsql oracle-sqldeveloper plsqldeveloper