아밥을시작한지 얼마되지 않아서, 에러잡는데에도 참 시간이 많이 드네요.
무엇이 문제인지 모르겠습니다.
그리고 이렇게 중첩되어 포함관계를 이루는 쿼리를 현업에서도 사용하시는지요..
참고로 테이블이나 필드면은 몇번을 확인했습니다...
SELECT KNA1~STCD2 "Tax Number가져오기
INTO gs_itab-stcd2
FROM KNA1
WHERE KNA1~KUNNR IN (
SELECT VTBFHA~KONTRH "비지니스 파트너코드 구하기
FROM VTBFHA
WHERE VTBFHA~BUKRS = BKPF~BUKRS
AND VTBFHA~RFHA IN (
SELECT TRACV_ACCITEM~DEAL_NUMBER "금융상품거래번호 구하기
FROM TRACV_ACCITEM
WHERE COMPANY_CODE = BKPF~BUKRS
AND TRACV_ACCITEM~AWFER = BKPF~BUKRS
AND TRACV_ACCITEM~AWREF = BKPF~AWKEY+0(10)
AND TRACV_ACCITEM~AWORG = BKPF~AWKEY+10(6)
)
).
ENDSELECT.
댓글 6
-
버미!
2010.06.28 16:41
-
계동너구리
2010.06.28 17:41
쿼리 자체가 잘 못 된 거같네요.
메인쿼리 서브 쿼리 어디 From 문에 존재하지 않는 BKPF 테이블 컬럼을 Where 조건에 사용할 수 없습니다.
그리고 위에분 말씀데로 좋지 않은 방법인거 같습니다.
FOR ALL ENTRIES 문 등을 활용해서 쿼리를 재구성 하던지 하는 방법을 생각하셔야 할 듯 합니다.
-
아빱초보
2010.06.28 17:45
버미님 말씀처럼 BKPF가 쌩뚱맞게 튀어 나와 있는데요...where 절에서 bkpf~bukrs 이말은 bkpf라는 테이블의 bukrs 필드를 의미하는데
bkpf의 bukrs필드의 어떤 값을 말하는 건가요?..searching이 되지 않고 있는데..bkpf라는 테이블을 언제 읽어서 bukrs라는 필드를 가지고 오냐는 것이죠....
-
양키
2010.06.28 17:48
BKPF~BUKRS, BKPF~AWKEY 관련변수를 파라메터로 받아야 하는거 아닌가요..
IT테이블을 만드셔서 for all entries 구문 쓰세요.. -
덩콘
2010.06.28 18:15
일단 쿼리를 다 풀어서 조인이나 서브쿼리 없이 작성하시고
원하는대로 실행이 되면 하나씩 합체를 해보세요
-
marco
2010.06.30 17:13
아~~ ^^ 해결했습니다.
BKPF 테이블이 잘못되었을 리는 없을테고, 그렇다면 BKPF는 어디서 튀어 나온거지..
그리고 위와 같이 하는 분은 전혀 Performance를 고려하지 않는 듯...