• 締切済み

PL/SQL グループ化について

こんにちは。 現在以下のようなソースが存在するのですが、以下beforeのgroup byに設定している「D」をグループ化の対象外にしなければなりません。 ただし、「D」はSELECT対象であり、かつデータが文字型であり、集計関数の使用対象外(使用した場合に意図した結果とならない)などといった事情があり、単純にgroup by句から外すという対応ではうまくいきません。 誠に恐縮ですが、お知恵をお貸しいただけませんでしょうか? 【before】 ----------------------------------------------------- INSERT INTO 出力テーブル ( A , B , C , D ) SELECT  MIN(テ1.A) AS 別名A,     MAX(テ1.B) AS 別名B,     MAX(テ1.C) AS 別名C,     テ1.D FROM   テーブル1 テ1 WHERE  EXISTS      ( SELECT 0      FROM テーブル2 テ2    JOIN        テーブル3 テ3    ON  テ2.A = テ3.A      WHERE テ1.C = テ2.C      HAVING SUM(DECODE(テ3.G,'Yes',0,1)+DECODE(テ3.H,'Yes',0,1)) = 0 ) GROUP BY テ1.A,     テ1.B,    テ1.C,    テ1.D ;    ←ここを外したいです -----------------------------------------------------

みんなの回答

  • yamada_g
  • ベストアンサー率68% (258/374)
回答No.1

具体的な入力データと期待する出力結果を書かれてはいかがでしょうか。 データ構造が分からなくては具体的な回答は付きづらいと思いますよ。 また、PL/SQLということからOracleなのだとは思いますが、 RDBMS名とバージョンも記載した方がいいかと思います。

すると、全ての回答が全文表示されます。

関連するQ&A