ここに私が持っているもののスニペットがあります:
select something from myTable
where curentFlag = 'Y'
and
case when @Year2 is not NULL then
AYEAR >= @Year AND AYEAR <= @Year2
else
AYEAR= isnull(@Year ,AYEAR)
end
ADATE = ISNULL(@Date, ADATE)
しかし、これは次の結果をもたらします。
「>」付近の構文が正しくありません。
「ADATE」付近の構文が正しくありません。
ユーザーは、年 (等しい) または年の範囲で検索できる必要があります。したがって、私はどちらか一方@YEAR
または両方@YEAR
を渡してい@YEAR2
ます。それでは、私のデータセットを考えてみましょう:
DECLARE @y TABLE(AYEAR INT);
INSERT @y VALUES(2008),(2010),(2010);
今、私はこれらの変数を持っています:
DECLARE @YEAR INT, @YEAR2 INT;
- 合格した場合
@YEAR = 2008
、1 つの結果が得られるはずです。 - 合格した場合
@YEAR = 2010
、2 つの結果が得られるはずです。 - 合格した場合、3 つの結果すべてを取得する必要があります
@YEAR = 2008
。@YEAR2 = 2010