2012-12-04 5 views
2

부울을 반환하는 Ms-Access에서 쿼리가 있습니다. 하지만이를 실행하면 "쿼리 식에서 누락 된 연산자"가 표시됩니다.Access에서 쿼리 식의 누락 연산자

SELECT case when exists(select due_amt from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1) then cast(1 as bit) else cast(2 as bit) end 

어디가 잘못 되었나요?

+1

'BIT' 2의 값을 가질 수 ... 최종 재 작성해야 하는가? – msmucker0527

+0

@ msmucker0527 나는 생각하지 않을 것이다. 또한 Access에는'Bit' 데이터 유형 ('Boolean' 만)이나 캐스트 함수 (이 경우'CBool ​​() 사용)가 없습니다. – Brad

답변

1

사례 사례를 작성해야합니다. IIf 문에 문을 사용해야합니다. 이 쿼리는 부울 값을 반환합니다.

SELECT IIf(Nz(due_amt,0) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1 

편집 :
은 내가 기능 뉴질랜드보다 더 강력 할 수있다 널 생각합니다. ADO null 값에 대한 특별한 경우가 있습니다 여기에 재

SELECT IIf(IIf(due_amt Is Null,0,due_amt) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1 

편집 2입니다. "= Null"조건을 사용하여 Null 값을 테스트 할 수 있습니다. 이 링크에서이 정보를 얻었습니다.
여기 http://www.techrepublic.com/article/10-tricks-for-handling-null-values-in-microsoft-access/6125114

SELECT IIf(IIf(due_amt = Null,0,due_amt) <> 0,True,False) as blndue from PaymentDetails where iss_id=20 and user_id=1 and ten_no=1 
+0

ADO.NET에서 실행하는 동안 예외가 발생합니다. "** 정의되지 않은 함수 'Nz'식. **". –

+0

Access에서 쿼리를 실행 중이거나 .NET에서 쿼리를 생성하고 있습니까? 데이터 세트를 사용하고 있습니까? – Brad

+0

Access에서 쿼리를 실행하면 올바르게 작동합니다. .NET에서 OLEDB를 사용하여 예외가 발생하면 예외가 발생합니다. –

관련 문제