タイトルは少しわかりにくいかもしれませんが、クエリは私のジレンマを理解するのに役立つかもしれません. こんな問い合わせがあります
SELECT TAB1.USER_ID,
(SELECT DISTINCT MAX(SYS_CONNECT_BY_PATH(B.COL1, '/'))
FROM (SELECT A.COL1,
ROW_NUMBER() OVER(ORDER BY A.COL1) AS curr,
ROW_NUMBER() OVER(ORDER BY A.COL1) - 1 AS prev
FROM (SELECT DISTINCT TAB2.COL1
FROM TABLE2 TAB2
WHERE TAB2.USER_ID = TAB1.USER_ID) A) B
CONNECT BY PRIOR curr = prev
START WITH curr = 1)
FROM TABL1 TAB1
WHERE TAB1.REC_STATUS = 'L'
TABLE1とTABLE2の2つのテーブルがあります。どちらも共通の属性である USER_ID を持っています。USER_ID に基づいて値を選択し、結果の行をテーブル自体 (A と呼ばれる) として扱っています。ただし、クエリは、A の外部で作成された TABLE1 の参照を取得できません。このクエリは、返されたすべての COL1 値のうち、USER_ID 条件に一致するものを実際に連結します。私は Oracle 9i を使用しているため、使用できる文字列連結は WM_CONCAT のみです。この関数は文書化されていないため、使用しないように言われました。
A ブロック内で TAB1 の列 (この場合は USER_ID) を参照する方法を教えてください。
どんな助けでも大歓迎です。
前もって感謝します