2017-05-03 1 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

필드에 'Description'값이 5 개인 레코드를 생성하려고합니까? – 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 값을 사용합니다. (또한 테스트되지 않았습니다.)

관련 문제