2013-08-22 7 views
1
SELECT PB.BUKTI_ID, 
      PB.BUKTI_DATE, 
      CBD.DISBURSE_DATE, 
      PB.CB_ID, 
      PB.BUKTI_RECEIVED_BY, 
      PB.NPWP, 
      (SELECT SUM (TOTAL_AMOUNT) 
       FROM  TRX_PPH23_BUKTI PB 
        LEFT JOIN 
         TRX_PPH23_BUKTI_DETAIL PBD 
        ON PB.BUKTI_ID = PBD.REF_BUKTI_ID) 
       AS TOTAL_AMOUNT, 
      PB.BRANCH_ID, 
      DECODE (PB.BUKTI_STATUS, 'O', 'Open', 'B', 'Cancel', 'Close') 
       BUKTI_STATUS 
    FROM  TRX_PPH23_BUKTI PB 
      LEFT JOIN 
       ((SELECT DISBURSE_NO, 
          DISBURSE_DATE, 
          RECEIVED_BY, 
          TOTAL_AMOUNT, 
          DISBURSE_STATUS 
        FROM TRX_CASH_DISBURSE_HEADER) 
       UNION 
       (SELECT DISBURSE_NO, 
         DISBURSE_DATE, 
         RECEIVED_BY, 
         TOTAL_AMOUNT, 
         DISBURSE_STATUS 
        FROM TRX_BANK_DISBURSE_HEADER)) CBD 
      ON PB.CB_ID = CBD.DISBURSE_NO 
ORDER BY PB.BUKTI_ID DESC; 

내가 다른 테이블 (TRX_PPH23_BUKTI_DETAIL)에서 합류하지만 난이 열의 동일한 값을 가지고에서 필드 합계 (TOTAL_AMOUNT)을 선택하고 싶지는 다른 테이블과 조인 문제는 내가 언급 한 열쇠 (bukti_id) ..하지만 난 모르겠다 저장 프로 시저 + 매개 변수없이이 쿼리를 반복하는 방법선택 열은</p> <p><img src="https://i.stack.imgur.com/SfIzn.jpg" alt="enter image description here"></p> <p>내가 아는,

답변

1

내부 쿼리를 외부 테이블과 상관시켜야합니다. 아인

... 
    PB.BUKTI_RECEIVED_BY, 
    PB.NPWP, 
    (SELECT SUM (TOTAL_AMOUNT) 
    FROM TRX_PPH23_BUKTI_DETAIL PBD 
    WHERE PBD.REF_BUKTI_ID = PB.BUKTI_ID) 
     AS TOTAL_AMOUNT, 
    PB.BRANCH_ID, 
    ... 
1

이 작동 할 수 있지만, 조인,

SELECT PB.BUKTI_ID, 
       PB.BUKTI_DATE, 
       CBD.DISBURSE_DATE, 
       PB.CB_ID, 
       PB.BUKTI_RECEIVED_BY, 
       PB.NPWP, 
       (SELECT SUM (TOTAL_AMOUNT) 
        FROM  TRX_PPH23_BUKTI PB2 
         LEFT JOIN 
          TRX_PPH23_BUKTI_DETAIL PBD 
         ON PB2.BUKTI_ID = PBD.REF_BUKTI_ID and PB.BUKTI_ID = PB2.BUKTI_ID) 
        AS TOTAL_AMOUNT, 
       PB.BRANCH_ID, 
       DECODE (PB.BUKTI_STATUS, 'O', 'Open', 'B', 'Cancel', 'Close') 
        BUKTI_STATUS 
     FROM  TRX_PPH23_BUKTI PB 
       LEFT JOIN 
        ((SELECT DISBURSE_NO, 
           DISBURSE_DATE, 
           RECEIVED_BY, 
           TOTAL_AMOUNT, 
           DISBURSE_STATUS 
         FROM TRX_CASH_DISBURSE_HEADER) 
        UNION 
        (SELECT DISBURSE_NO, 
          DISBURSE_DATE, 
          RECEIVED_BY, 
          TOTAL_AMOUNT, 
          DISBURSE_STATUS 
         FROM TRX_BANK_DISBURSE_HEADER)) CBD 
       ON PB.CB_ID = CBD.DISBURSE_NO 
join ((SELECT SUM (TOTAL_AMOUNT) 
        FROM  TRX_PPH23_BUKTI PB2 
         LEFT JOIN 
          TRX_PPH23_BUKTI_DETAIL PBD 
         ON PB2.BUKTI_ID = PBD.REF_BUKTI_ID group by PB2.BUKTI_ID )) as X_2 on X_2.BUKTI_ID = PB.BUKTI_ID 
where 
    ORDER BY PB.BUKTI_ID DESC; 

감사

+0

해당 범위에서 PB.BUKTI_ID이 (가) 유효하지 않습니다. – Niinii

+0

맞으면 대답을 수락 할 수 있습니까? – Felquir

0

의 합 쿼리를 포함해야합니다 당신을 위해이 일입니까?

SELECT * FROM (
    SELECT PB.BUKTI_ID, 
      PB.BUKTI_DATE, 
      CBD.DISBURSE_DATE, 
      PB.CB_ID, 
      PB.BUKTI_RECEIVED_BY, 
      PB.NPWP, 
      (SELECT SUM (TOTAL_AMOUNT) 
       FROM  TRX_PPH23_BUKTI PB 
        LEFT JOIN 
         TRX_PPH23_BUKTI_DETAIL PBD 
        ON PB.BUKTI_ID = PBD.REF_BUKTI_ID) 
       AS TOTAL_AMOUNT, 
      PB.BRANCH_ID, 
      DECODE (PB.BUKTI_STATUS, 'O', 'Open', 'B', 'Cancel', 'Close') 
       BUKTI_STATUS 
    FROM  TRX_PPH23_BUKTI PB 
      LEFT JOIN 
       ((SELECT DISBURSE_NO, 
          DISBURSE_DATE, 
          RECEIVED_BY, 
          TOTAL_AMOUNT, 
          DISBURSE_STATUS 
        FROM TRX_CASH_DISBURSE_HEADER) 
       UNION 
       (SELECT DISBURSE_NO, 
         DISBURSE_DATE, 
         RECEIVED_BY, 
         TOTAL_AMOUNT, 
         DISBURSE_STATUS 
        FROM TRX_BANK_DISBURSE_HEADER)) CBD 
      ON PB.CB_ID = CBD.DISBURSE_NO 
) TRX INNER JOIN TRX_PPH23_BUKTI_DETAIL TRXb ON Trx.BUKTI_ID =TRXb.BUKTI_ID 
관련 문제

 관련 문제