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) から結合されたフィールド sum(total_amount) を選択したいのですが、この列には同じ値があります。

ここに画像の説明を入力

私は特にキー(bukti_id)を言わなかったので問題を知っています..しかし、ストアプロシージャ+パラメータなしでこのクエリをループする方法がわかりません

4

3 に答える 3

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;

ありがとう

于 2013-08-22T08:52:53.063 に答える
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,
  ...
于 2013-08-22T08:50:38.210 に答える