2013-09-27 2 views
1

Oracle 데이터베이스 11g를 사용하여 스크립트를 작성하고 있습니다.SQL - 하위 쿼리에서 필드 가져 오기

현재 중첩 된 하위 쿼리가 여러 개 있습니다. 이러한 하위 쿼리 중 하나에서 필드를 검색해야하지만 약간의 어려움이 있습니다. 내 스크립트가 현재 : 나는 중첩 된 서브 쿼리의 마지막에서 필드 'LAST_UPDATE_DATE'합니다 (RA_CUSTOMER_TRX_ALL 테이블)를 선택하려고

SELECT a.PARTY_ID, a.PARTY_NAME, a.STATUS 
     ,a.OBJECT_VERSION_NUMBER, a.PARTY_NUMBER 
FROM HZ_PARTIES a 
WHERE a.PARTY_TYPE = 'ORGANIZATION' 
AND  a.STATUS = 'A' and a.party_id = 4402 
AND  a.CREATED_BY_MODULE IN ('HZ_CPUI','TCA_V1_API','TCA_FORM_WRAPPER') 
AND  (a.PARTY_ID IN (SELECT b.PARTY_ID FROM HZ_CUST_ACCOUNTS b 
      WHERE b.CUSTOMER_TYPE = 'R' 
      AND b.CUST_ACCOUNT_ID IN (SELECT c.BILL_TO_CUSTOMER_ID FROM RA_CUSTOMER_TRX_ALL c 
        WHERE c.BILL_TO_CUSTOMER_ID IS NOT NULL 
        AND c.LAST_UPDATE_DATE < SYSDATE-100))) 

. SELECT 하위 섹션에 선택 하위 쿼리를 포함 시키려고했습니다. 및 FROM 섹션을 포함하지만 하위 쿼리의 마지막 부분에는 연결할 수 없습니다. 누구든지 도움을 줄 수 있습니까? 건배, RussH.

답변

1

테스트하지 않은 스와치. 데이터에 따라 중복 항목을 삭제해야 할 수도 있습니다.

SELECT a.PARTY_ID, a.PARTY_NAME, a.STATUS 
     ,a.OBJECT_VERSION_NUMBER, a.PARTY_NUMBER, c.last_update_date 
FROM HZ_PARTIES a JOIN hz_cust_accounts b 
         ON b.customer_type = 'R' 
          AND a.party_id = b.party_id 
        JOIN ra_customer_trx_all c 
         ON b.cust_account_id = c.bill_to_customer_id 
          AND c.last_update_date < SYSDATE-100 
WHERE a.PARTY_TYPE = 'ORGANIZATION' 
AND  a.STATUS = 'A' and a.party_id = 4402 
AND  a.CREATED_BY_MODULE IN ('HZ_CPUI','TCA_V1_API','TCA_FORM_WRAPPER') 
+0

감사합니다. 그건 잘된거야. 중복을 정리하기 위해 여분의 줄을 추가했습니다. 및 c.last_update_date = (ra_customer_trx_all e에서 max (e.last_update_date)를 선택하십시오. 여기서 e.bill_to_customer_id = c.bill_to_customer_id) – RussH

관련 문제