2015-01-28 2 views
-1

내 QueryID 열에 특정 계정에 대한 값이 'NU.PN20'및 'NU.FLREF'인 경우. 그리고 난 단지 결과가있을 것으로 기대하고있다 : 나는 충분히 분명 희망하나의 열을 두 개로 구분하는 CASE 문

PStatus IStatus 
    3  5 
    5  3 

:

PStatus IStatus 
3  3 

을 대신 위를 받고, 내가 좋아하는 뭔가를 얻을 것이다. 도와주세요. 감사.

CASE 
    WHEN AV.QueryID IN ('NU.PN1','NU.PN2') AND AV.Response = 'Y' THEN '2' 
    WHEN AV.QueryID = 'NU.PN20' AND AV.Response = 'Y' THEN '3' 
    WHEN AV.QueryID = 'NU.PN4' AND AV.Response = 'Y' THEN '4' 
    ELSE '5' 
END AS [PStatus], 
CASE 
WHEN AV.QueryID = 'NU.FL1' AND AV.Response = 'Y' THEN '2' 
WHEN AV.QueryID = 'NU.FLREF' AND AV.Response = 'Y' THEN '3' 
WHEN AV.QueryID IN ('NU.FL2','NU.FL6') AND AV.Response = 'Y' THEN '4' 
WHEN AV.QueryID = 'ACNOAVAIL' AND AV.Response = 'Y' THEN '6' 
ELSE '5' 
END AS [IStatus] 
+0

원하십니까? 값이 서로 다른 두 개의 문자열을 같습니까? – potashin

+0

당신이하려는 일에 대해 더 많은 정보를 추가 할 수 있습니까? 정확히 어떻게 결과가 달라졌습니까? –

+0

질문을 편집하고 샘플 데이터를 보여주십시오. 또는 더 나은 방법은 SQL Fiddle을 설정하는 것입니다. –

답변

0

귀하의 질문은, 매우 불분명하지만, 여기에 상식을 기반으로 내 대답입니다 :

"하나 개의 계정에 대한 아래의 결과를보고하십시오. 여분의 행을 만드는 중입니다 "

"사례 사례 "문이 삽입 문의 내용 일부라고 가정합니다. "예상 행 "에 대해"추가 행 "이있는 경우 문이 호출됩니다. 두 번 이상 그 이유를 확인해야합니다.

"PStatus와 IStatus에는 적절한 링크가 없으므로 항상 5가 포함됩니다."

case 문에 일치하는 항목이 없으면 "Else"문에 선언되어 있기 때문에 "5"가 포함됩니다.

두 액션 항목 :

  1. 확인 DB 프로 시저 호출의 양.

  2. 입력을 확인하십시오.

+0

그것이 더 나은 이해에 도움이된다면 제 질문을 편집했습니다. 고맙습니다. – Bulbul

+0

질문 편집은 QueryID 값만 참조하며 Case 문은 QueryID 및 응답 값을 모두 나타내며 AND 연산자로 나타납니다. 주어진 입력의 응답 값은 얼마입니까? –

+0

응답이 "Y"여야합니다. – Bulbul