2016-10-25 2 views
0

제 질문은이 이전 쿼리와 관련이 있습니다. 추가 요구 사항이 있으며 따라서이 질문이 있습니다.다른 열의 다른 값에 대해 동일한 열을 선택한 다음 필터링하십시오.

Select same column for different values on a different column

다음은 내 테이블 내 요구 사항은 'J'로 시작하고 같은 직원에 해당하는 SEQ4NAME을 선택 seq3name을 찾는 것입니다.

EMP_ID SEQ_NR NAME 
874830 3  JOHN     
874830 4  NOE   
874830 21  MIKE  
874830 22  BILL 
874830 23  ROBERT 
874830 24  STEVE 
874830 25  JERRY 

SELECT EMP_ID 
     MAX(CASE WHEN SEQ_NR = 3 THEN NAME END) AS SEQ3NAME 
     MAX(CASE WHEN SEQ_NR = 4 THEN NAME END) AS SEQ4NAME 
FROM AC_XXXXX 
WHERE SEQ_NR = '3' AND NAME LIKE '%J'; 

는 출력

EMP_ID SEQ3NAME SEQ4NAME 
874830 JOHN  NOE 

희망하지만 우리가 Seq4name을 얻을 수있는 해결책을 알려 주시기 바랍니다 여기에 문제는 내가 NULL.Can로 seq4name을 얻을?

도움 주셔서 감사합니다.

+0

당신은'MAX을 (가지고있는)':

난 당신이 같은 것을 사용한다 생각? –

+0

아니요, NAME의 MAX()를 사용하지 않았습니다. 위의 링크는 더 자세한 정보를 가지고 있습니다.하지만 링크가 잘 나왔다고 생각하지 않습니다. –

답변

0

내가 이해하는 것처럼 name의 첫 번째 문자가 'J'인 모든 행을 찾으십시오. 그렇다면 NAME LIKE 'J%'이 필요하고 그 반대는 필요하지 않습니다. SEQ_NR = 3으로 행을 제한하는 것 이외에 결과 집합에 SEQ_NR = 4이있는 행이 없음을 의미합니다. NAME``의

SELECT EMP_ID 
     MAX(CASE WHEN SEQ_NR = 3 THEN NAME END) AS SEQ3NAME 
     MAX(CASE WHEN SEQ_NR = 4 THEN NAME END) AS SEQ4NAME 
FROM AC_XXXXX 
WHERE SEQ_NR =ANY(3,4) 
AND NAME LIKE 'J%' 
GROUP BY EMP_ID; 

편집 다른 해결책

SELECT EMP_ID 
     MAX(CASE WHEN SEQ_NR = 3 AND NAME LIKE 'J%' THEN NAME END) AS SEQ3NAME 
     MAX(CASE WHEN SEQ_NR = 4 THEN NAME END) AS SEQ4NAME 
FROM AC_XXXXX e 
WHERE SEQ_NR =ANY(3,4) 
    AND EXISTS (select null 
       from AC_XXXXX se 
       where e.EMP_ID = se.EMP_ID 
       AND NAME LIKE 'J%') 
GROUP BY EMP_ID; 
+0

@ Micheal. 응답 해 주셔서 감사합니다. 원래 쿼리에 원하는 출력을 추가했습니다. 'J'로 시작하는 seq3name을 찾은 다음 동일한 직원의 해당 SEQ4NAME을 선택해야합니다. 쿼리를 시도했지만 여전히 SEQ4NAME을 널로 가져오고있었습니다. –

+0

해당 SEQ4 이름으로 무엇을 의미하는지 명확하지 않습니다. 어떻게 행을 relate해야합니까? SEQ_NR = 3 및 SEQ_NR = 4 인 행? 같은 emp_id이지만 다른 이름을 보았습니다. 네가 'J %'와 같은 경우에만 emp_id와 SEQ3NAME을 얻을 필요가 있다는 것을 의미 할 수도 있고, 다른 경우에는 널이고 SEQ4NAME은 항상? 또는 무엇을? –

+0

네, 그들은 같은 emp_ID에 의해 관련되어 있습니다. 이름은 종속적 인 이름입니다. 예를 들어 nr 3은 종속이고 seq nr 4는 다른 종속입니다. 종속 3 이름이 J로 시작하는 직원과 해당 종속 4 이름이 필요합니다. .. 희망을 명확히합니다. –

관련 문제