TOAD for Oracle を使用しています。いくつかの SQL クエリを実装しているときに、次の問題が発生しました。
私は、それぞれが約持っているいくつかのテーブルを使用しています。選択クエリの場合は 1,000 万行。2 つのテーブルに 7,000 万行を超えるデータがあります。
私が持っているとしましょう。
TRANSACTION テーブル (基本キー: SQ_TRANSACTION_ID)
TRANSACTION_DETAIL テーブル (外部キー: RF_TRANSACTION_ID、RF_PRODUCT_ID)
PRODUCT テーブル (基本キー: SQ_PRODUCT_ID)
私の選択クエリは次のようなものです。
SELECT TR.TRANSACTION_ID,
SUM(CASE WHEN PR.CD_PRODCUT_TYPE = 'A'
THEN TRD.CS_INVOICE_PRICE ELSE 0 END) A_PRODUCT_TOTAL,
SUM(CASE WHEN PR.CD_PRODCUT_TYPE <> 'A'
THEN TRD.CS_INVOICE_PRICE ELSE 0 END) B_PRODUCT_TOTAL
FROM TRANSACTION TR,
TRANSACTION_DETAIL TRD,
PRODUCT PR
WHERE TR.SQ_TRANSACTION_ID = TRD.RF_TRANSACTION_ID
AND TRD.RF_PRODUCT_ID = PR.SQ_PRODUCT_ID
GROUP BY TR.TRANSACTION_ID,
CASE WHEN PR.CD_PRODCUT_TYPE = 'A' THEN TRD.CS_INVOICE_PRICE ELSE 0 END,
CASE WHEN PR.CD_PRODCUT_TYPE <> 'A' THEN TRD.CS_INVOICE_PRICE ELSE 0 END
外部/主キーを使用して、このクエリを互いに参照する 2 つ以上の部分に分割する方法はありますか? つまり、最初の部分が A_PRODUCT_TOTAL をフェッチし、2 番目の部分が B_PRODUCT_TOTAL をフェッチする 2 つの部分に分割するようなものです。各パーツのトランザクション ID は、結果データで一致する必要があります。