SELECT a.name a.idno a.address a.gender d.name d.idno d.docdate d.docname
d.docno
FROM (select b.name b.idno b.docdate b.docname c.docno
from zoutput, zdtdoc
where b.docname = c.docname(+)
)d
where a.name = d.name
and a.idno = d.idno
sql문으로 한다면 이렇게 하면 될거 같은데 abap에서는 안되더군요
1번 테이블 : zinput ( name, idno, address, gender ) name idno
2번 테이블 : zoutput ( name, idno, docdate, docname) name idno docname
3번테이블 : zdtdoc ( docname, docno) docname
대충 이런식이 될텐데요 위에서 어떻게 수정해야하는지 좀 알려주시면 감사하겠습니다.
그런데 위에 있는 쿼리는 동작하는 건가요?
NATIVE SQL로 바꾸어 생각해 봅시다.
SELECT a.name a.idno a.address a.gender d.name d.idno d.docdate d.docname
d.docno
FROM ZINPUT A,
(SELECT b.name, b.idno, b.docdate, b.docname, c.docno
FROM ZOUTPUT B,
ZDTDOC C
WHERE B.DOCNAME = C.DOCNAME(+) ) D
WHERE a.name = d.name
AND a.idno = d.idno
음. 이건 아래와 같을것 같구요.
SELECT a.name a.idno a.address a.gender b.name b.idno b.docdate b.docname
c.docno
FROM ZINPUT A,
ZOUTPUT B,
ZDTDOC C
WHERE a.name = b.name
AND a.idno = b.idno
and b.DOCNAME = C.DOCNAME(+)
이걸 Open SQL 로 바꾸시면 될듯합니다.
Open으로 바꾸는 것은 스스로 해보시기 바랍니다.