여기에 구축 한 쿼리가 상당히 복잡합니다. 이 작업은 아직 승인되지 않은 문서에 대한 모든 세부 정보를 선택하고 문서 참조 목록 및 해당 문서를 제출 한 사용자의 이름을 반환합니다. 그럼 내가하고 싶은 일은 결과에 표를 조인하여 아직 그 문서에 대한 승인을 아직 등록하지 않은 모든 사용자를 얻는 것입니다 (이는 중첩 된 선택에서 수행하고있는 것입니다, 즉 approvalstatus = . 나는 LEFT이 같은 위의 쿼리 중첩에 가입하려고 노력Oracle에서 이중 중첩 된 선택으로 왼쪽 조인
SELECT substr(m.xreference,1,instr(m.xreference,'/')-1) Proj,
m.xreference,
m.xversion,
a1.assignedtoname,
a1.actiondate
FROM documentapprovers a1,
docmeta m,
(SELECT DISTINCT a2.documentid
FROM documentapprovers a2
WHERE a2.approvalstatus = 'Pending') penders
WHERE penders.documentid = a1.documentid
AND m.did = a1.documentid
AND a1.approverrole = 'Author'
AND a1.approvertitle = 'Author'
AND a1.actiondate <= SYSDATE - interval '3' month
ORDER BY proj ASC, a1.assignedtoname DESC, m.xreference asc
내가 추가하여 필요에 레코드를 식별하는 데 필요한 어떤 '보류 :
SELECT a3.assignedtoname, a4.*
FROM (SELECT substr(m.xreference,1,instr(m.xreference,'/')-1) Proj,
a1.documentid,
m.xreference,
m.xversion,
a1.assignedtoname,
a1.actiondate
FROM documentapprovers a1,
docmeta m,
(SELECT DISTINCT a2.documentid
FROM documentapprovers a2
WHERE a2.approvalstatus = 'Pending') penders
WHERE penders.documentid = a1.documentid
AND m.did = a1.documentid
AND a1.approverrole = 'Author'
AND a1.approvertitle = 'Author'
AND a1.actiondate <= SYSDATE - interval '3' month) a4
LEFT JOIN documentapprovers a3
ON a3.documentid = a4.documentid
을하지만 명령이있는 오류 제대로 끝나지 않았습니다. 나는 계속해서 그것을 끝내고 나에게 완벽하게 끝났습니다. 누구든지 도울 수 있습니까?
오라클의 아주 오래된 버전입니다. 8i로 생각합니다.
우수! 나는 그것이 JOIN 문을 작동시킬 수 없었기 때문에 이것이 의심스럽지 만, 나는 코드에있는 실수가 내가 일하는 데 익숙한 JOIN을 받아들이는 것보다 더 많은 가능성이 있다고 생각했다. – deed02392