2012-09-10 4 views
1

Access SQL의 WHERE 절에 조건부 IIf 또는 CASE를 추가하여 전달 된 값을 기반으로 조건을 추가하려고합니다. 이 사이트에서 몇 가지 예제를 보았지만 약간 다르며 필자의 경우 코드가 작동하도록 노력했습니다. 코드 :Where Access SQL에서 조건부

SELECT * FROM incHC 
WHERE 
incHC.repdte=(SELECT Max(repdte) AS maxDt FROM bYrs) AND 
incHC.asset>0 AND 
incHC.eq2<>0 AND 

(
CASE WHEN recType="inst" THEN 
    incHC.orphan=0 
ELSE 
    incHC.orphan<=1 
END 
) 

어떤 도움을 많이 주시면 감사하겠습니다. 나는 당신의 쿼리 뭔가를 놓친 거지하지 않는 한

+2

, 당신은 다음 출력의 단일 열을 처리하는지 [IIF] (http://www.techonthenet.com/access/functions/advanced/iif.php)가 필요합니다. IIF를 출력 열 중 하나에 넣으면 쿼리의 조건부 값으로 사용할 수 있습니다. –

답변

2

, 당신은 CASE없이이 작업을 수행 할 수 있어야한다 :이 MSACCESS SQL의 경우

SELECT * 
FROM incHC 
WHERE incHC.repdte=(SELECT Max(repdte) AS maxDt FROM bYrs) 
    AND incHC.asset>0 
    AND incHC.eq2<>0 
    AND 
    (
     (
      recType="inst" 
      AND incHC.orphan=0 
     ) 
     OR 
     (
      recType<>"inst" 
      AND incHC.orphan<=1 
     ) 
    ) 
+0

Genius. 고맙습니다. –