レポートのデータをプルする大規模なストアドプロシージャがあります。WHERE
特定の基準に応じて、句で2つの異なる値のいずれかを使用しようとしています。CASE
ステートメントを使用してこれを実行する方法がわかりませんTHEN
。パーツでエラーが発生し続けます。以下は私がやろうとしていることです。これは、より大きなストアドプロシージャのごく一部です。したがって、私が探しているのは、 andパラメータで評価するために使用したいdlp(DATETIME)
よりも新しい場所です。そうでない場合は、andで評価するために使用します。dlc(DATETIME)
dlp
@AgeStart
@AgeEnd
dlc
@AgeStart
@AgeEnd
@AgeStart INT
@AgeEnd INT
SET @Recovery = (
SELECT SUM(ISNULL(M.Paid1, 0))
FROM Master AS M
WHERE M.Status IN ('xxx','yyy')
AND CASE
WHEN COALESCE(M.dlp, '2000-01-01 00:00:00') >
COALESCE(M.dlc, '2000-01-01 00:00:00')
THEN DATEDIFF(dd,M.Received,M.dlp)
>= @AgeStart AND DATEDIFF(dd,M.Received,M.dlp) <= @AgeEnd
ELSE DATEDIFF(dd, M.dlc, M.Received)
>= @AgeStart AND DATEDIFF(dd, M.dlc, M.Received) <= @AgeEnd
END
AND M.Balance >= @OrigBalanceMin AND M.Balance <= @OrigBalanceMax
)