2013-03-18 2 views
-1

아래의 사례 문에 누락 된 키워드 오류가 나타나는 이유를 모르겠습니다.이 사례 명세서에 어떤 문제가 있습니까? 누락 된 키워드 오류

WHERE tb.BOOKED_DATE = TO_DATE($P{pFromDate}, 'dd/MM/yyyy') 
AND (case when $P{pTxnStatusId} = '11' then pg.RESPONSE_CODE is Not Null else pg.RESPONSE_CODE = $P{pTxnStatusId} end) 

의견을 보내주십시오.

감사

+1

SELECT 문은 어디에 있습니까? – inser

+0

왜 select 문이 필요합니까? –

+0

'사례 번호 THEN else END' 형태로되어 있지만 값이없는 것처럼 보입니다. 첫 번째 값이 있어야하고 다른 조건이 있고 두 번째 값이 있어야하는 위치가 있습니다. 당신은 표현이 있어요. 당신이하려는 일을 분명히해야한다고 생각합니다! – Bridge

답변

1

나는 경우 문이 여기에 원하는 것을 생각하지 않는다, 당신은 어디에 문에 논리를 적용하려고 할 것으로 보인다. 이를 대신 AND 및 OR로 변환하십시오.

WHERE tb.BOOKED_DATE = TO_DATE($P{pFromDate}, 'dd/MM/yyyy') 
AND (($P{pTxnStatusId} = '11') OR ($P{pTxnStatusId} = '0' AND pg.RESPONSE_CODE = 0)) 
+0

아니 이것은 나를 위해 작동하지 않습니다 .. 여기에 구현 된 로직이 필요합니다, pTxnStatusId 2 값 0과 11을 갖습니다. 11은 모든 레코드를 표시해야 할 경우에만 응답 코드 0의 값 –

+0

@SrikanthSridhar 질문에서 논리. 나는 편집 했어. 지금 살펴 봐. 나는 당신이 아직도 날짜를 확인하고 싶다고 생각했다. – Bridge

+0

죄송합니다. 여기서는 pTxnStatusId 값만 확인하고 있습니다. pg.Response_code가 0 인 경우에만 pTxnStatusId 값을 할당해야합니다. 그렇지 않으면 pg.Response_code가 null 인 경우를 제외하고 모든 레코드를 검색해야합니다. 이것이 iam이 case 문으로 시도하는 이유입니다. –

관련 문제