【发布时间】:2016-03-14 02:53:33
【问题描述】:
您好,我无法使用以下查询获取前 1 行。 它在oracle,plsql中。
SELECT per.person_no,
perbus.person_no,
perbus.edit_dt,
perbus.org_name,
perbus.FIRST_NAME
FROM users.persons per
LEFT OUTER JOIN (
SELECT ASSOC.edit_dt,PER_CONTACTS.PERSON_NO,
PER_CONTACTS.PERSON_ID AS PER_ID,
PER.EXTERNAL_PERSON_ID AS EXT_PER_ID,
PER_CONTACTS.LNAME||', '||PER_CONTACTS.FNAME AS NAME,
PER_CONTACTS.FNAME AS FIRST_NAME,
PER_CONTACTS.MNAME AS MIDDLE_NAME,
PER_CONTACTS.LNAME AS LAST_NAME,
ORG.ORG_NAME AS ORG_NAME,
T_ORG.ORG_ID AS ORG_ID,
T_ORG.ORG_DISPLAY_ID AS EXT_ORG_ID,
rownum AS rn
FROM USERS.PER_CONTACTS PER_CONTACTS
LEFT OUTER JOIN USERS.PERSONS PER ON PER.PERSON_ID = PER_CONTACTS.PERSON_ID
LEFT OUTER JOIN USERS.ASSOC ASSOC ON ASSOC.PERSON_ID = PER.PERSON_ID
LEFT OUTER JOIN USERS.T_ORG T_ORG ON T_ORG.T_ORG_ID = ASSOC.T_ORG_ID
LEFT OUTER JOIN USERS.ORG ORG ON ORG.ORG_ID = T_ORG.ORG_ID
WHERE PER_CONTACTS.CONTACT_ROLE_LOV = 'EMPLOYEE' AND PER_CONTACTS.PERSON_NO IN (SELECT PERSON_NO FROM USERS.QA_APPROVED)
ORDER BY ASSOC.edit_dt DESC
)
perbus ON perbus.PERSON_NO = PER.PERSON_NO
WHERE PER.PERSON_NO IN (SELECT PERSON_NO FROM USERS.QA_APPROVED)
我是 oracle 新手,在上述查询中,由于数据的原因,我得到了重复项 - 我需要根据 Assoc.edit_dt 获取第一条记录。
我可以通过 Assoc.edit_dt 对记录进行排序,但是当我使用 where row_num = 1 inside the Join 之类的子句时,我的输出查询为空对于所有 perbus 表字段。
请指教。
【问题讨论】:
-
你能显示你在哪里添加
row_num = 1
标签: sql plsql oracle11g oracle-sqldeveloper plsqldeveloper