2017-05-03 14 views
1

次のクエリを結合条件に書き込んで、フィールドから説明を取得しようとしています。クエリを結合に書き直すのを手伝ってもらえますか?..caseステートメントで結合する

SELECT DESCRIPTION FROM apps.FND_FLEX_VALUES_VL 
    WHERE FLEX_VALUE = T.SEGMENT1 
    AND FLEX_VALUE_SET_ID = 1015327) SEGMENT1_DESC, 
    T.SEGMENT2  SEGMENT2, 
(SELECT DESCRIPTION FROM apps.FND_FLEX_VALUES_VL 
WHERE FLEX_VALUE = T.SEGMENT2 
    AND FLEX_VALUE_SET_ID = 1015259) SEGMENT2_DESC, 
T.SEGMENT3      SEGMENT3,    
(SELECT DESCRIPTION FROM apps.FND_FLEX_VALUES_VL 
WHERE FLEX_VALUE = T.SEGMENT3 
    AND FLEX_VALUE_SET_ID = 1015328) SEGMENT3_DESC, 
T.SEGMENT4 SEGMENT4, 
(SELECT DESCRIPTION FROM apps.FND_FLEX_VALUES_VL 
WHERE FLEX_VALUE = T.SEGMENT4 
    AND FLEX_VALUE_SET_ID = 1015329) SEGMENT4_DESC, 
T.SEGMENT5 SEGMENT5, 
(SELECT DESCRIPTION FROM apps.FND_FLEX_VALUES_VL 
WHERE FLEX_VALUE = T.SEGMENT5 
    AND FLEX_VALUE_SET_ID = 1015330 
+1

質問を編集し、サンプルデータと希望する結果を提供してください。 –

+0

5つの 'Description'値をフィールドとして持つレコードを作成しようとしていますか? – toonice

+0

問合せを簡略化して、問題の理解を容易にします。いくつかのヒントを得るにはhttps://stackoverflow.com/help/mcveを読んでください。 – jarlh

答えて

0

OK。だから、この質問は本当に答えが不明確で何かを明確にすることはできません。しかし、私はあなたが意味するかもしれないと思うものに亀裂がありました。

WITH flex_vl AS 
    (SELECT flex_value, description 
    FROM apps.FND_FLEX_VALUES_VL 
    WHERE FLEX_VALUE_SET_ID IN(1015259,1015328,1015329,1015330,1015327) 
SELECT t.some_data, t.segment1, vl1.description,t.segment2,vl2.description, 
     t.segment3,vl3.description,t.segment4,vl4.description,t.segment5,  vl5.description 
FROM my_table t 
     INNER JOIN 
     flex_vl vl1 ON vl1.flex_value = t.segment1       
     INNER JOIN 
     flex_vl vl2 ON vl2.flex_value = t.segment2 
     INNER JOIN 
     flex_vl vl3 ON vl3.flex_value = t.segment3 
     INNER JOIN 
     flex_vl vl4 ON vl4.flex_value = t.segment4 
     INNER JOIN 
     flex_vl vl5 ON vl5.flex_value = t.segment5 

あなたは私はあなたが求めているもののいくつかを推測するために抱えている心に留めする必要があるが、本質的に、これは複数あるFND_FLE_VALUES_VLテーブルに(クエリ中)「T」とエイリアステーブルから合流します毎回異なるSEGMENT値を使用します。 (これもテストされていません)

関連する問題