お世話になっております。 現在業務でSQLの変更をしなければならないのですが、 苦手とする結合条件の多さに困っております。 以下のような条件で抽出の必要のある条件を すべてつなげなければなりません。 A1TBL LEFT OUTER JOIN A4TBL A2TBL LEFT OUTER JOIN A5TBL A3TBL LEFT OUTER JOIN A6TBL 上記のような関係でA1,A2,A3を優先にデータ抽出します ですが、これらをすべて一度に抽出することが必要です。 また、以下のようなしばりも存在します。 A2TBL INNER JOIN A3TBL A5TBL INNER JOIN A6TBL 以上の条件をすべて含む形に 以下のSQLから変更したいのですが、 あまりにもつながりが多く混乱しています。 何卒アドバイスいただければ幸いです。 SELECT DISTINCT A3.STD_MM ←年月 A3.ID,A3.ITEM_CD,A3.NAME,A3.PLACE_FROM,A3.PLACE_TO FROM A5TBL AS A5 INNER JOIN A2TBL AS A2 ON A5.STD_MM >= SUBSTR(A2.START_YYYYMMDD,1,6) AND A5.STD_MM < SUBSTR(A2.END_YYYYMMDD,1,6) AND A5.ID = A2.ID AND A5.ITEM_CD = A2.ITEM_CD INNER JOIN A6TBL AS A6 ON A5.STD_MM = A6.STD_MM AND A5.ID = A6.ID AND A5.ITEM_CD = A6.ITEM_CD INNER JOIN A3TBL AS A3 ON A6.STD_MM >= SUBSTR(A3.START_YYYYMMDD,1,6) AND A6.STD_MM < SUBSTR(A3.END_YYYYMMDD,1,6) AND A6.ID = A3.ID AND A6.ITEM_CD = A3.ITEM_CD AND A6.PARTS_NO = A3.PARTS_NO INNER JOIN A4TBL AS A4 A6.STD_MM = A4.STD_MM AND A6.ID = A4.ID AND A6.ITEM_CD = A4.ITEM_CD INNER JOIN A1TBL AS A1 ON A4.STD_MM >= SUBSTR(A1.START_YYYYMMDD,1,6) AND A4.STD_MM < SUBSTR(A1.END_YYYYMMDD,1,6) AND A4.ID = A1.ID AND A4.ITEM_CD = A1.ITEM_CD AND A4.PARTS_NO = A1.PARTS_NO WHERE A2.ID = パラメータ(0) AND SUBSTR(A2.START_YYYYMMDD,1,6) <= パラメータ(1) AND SUBSTR(A2.START_YYYYMMDD,1,6) > パラメータ(1) AND A1.KBN LIKE パラメータ(2) AND A3.ORIGINAL_CD LIKE パラメータ(3) AND A2.ITEM_CD LIKE パラメータ(4) AND A3.PARTS_NO LIKE パラメータ(5) AND A1.DELETE_DATE > CURRENT TIMESTAMP ※DELETE_DATE 論理削除年月日 AND A2.DELETE_DATE > CURRENT TIMESTAMP AND A3.DELETE_DATE > CURRENT TIMESTAMP AND A4.DELETE_DATE > CURRENT TIMESTAMP AND A5.DELETE_DATE > CURRENT TIMESTAMP AND A6.DELETE_DATE > CURRENT TIMESTAMP よろしくお願いいたします。
↧