1

条件付きIIfまたはCASEをAccessSQLのWHERE句に追加して、渡された値に基づいていずれかまたは両方の条件を追加しようとしています。サイトでいくつかの例を見てきましたが、それらは少し異なり、私の場合はコードを機能させるのに苦労しました。コード:

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
)

どんな助けでも大歓迎です。

4

1 に答える 1

2

私があなたの質問で何かを逃していない限り、あなたは:なしでこれをすることができるはずですCASE

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
        )
    )
于 2012-09-10T18:18:10.140 に答える