テーブルには、2014 年から 2050 年までの列があります。パラメーターに基づいて範囲内の列を返すクエリを作成したい場合、これは可能ですか? 列名を数値として受け入れるためには文字列として格納されているため、比較の前にキャストする必要があるため、さらに注意が必要です。Tenor_End と Tenor_Start は int です (2014、2015 ... 2050)
Select *
From MMD_Scale
WHERE (@Tenor_End IS NULL and CAST(c.Name AS INT) >= @Tenor_Start) OR
(@Tenor_Start IS NULL and CAST(c.Name AS INT) <= @Tenor_End) OR
(@Tenor_Start IS NOT NULL AND @Tenor_End IS NOT NULL
AND CAST(c.Name AS INT) >= @Tenor_Start
AND CAST(c.Name AS INT) <= @Tenor_End) OR
(@Tenor_Start IS NULL
AND @Tenor_End IS NULL
AND CAST(c.Name AS INT) IS NOT NULL)
これは私がオンライン ソースからまとめたものですが、c.Name は列名を参照するための組み込みではありません。また、選択後に同様のロジックを試してみましたが、役に立ちませんでした。任意の提案をいただければ幸いです。
SSRS で実行されている Microsoft SQL クエリ。テーブルは次のようになります
Date | 2014 | 2015 | 2016 | 2017 | 2018 | 2019 | 2020 |
-------------------------------------------------------------
8/2/2013 | .1 | .9 | 1.7 | 2.0 | 2.5 | 1.1 | .1 |
8/6/2013 | .6 | 1.2 | 2.2 | 1.2 | 3.2 | 1.9 | .8 |
そして、2014年から2017年の間など、列の範囲を除いてすべての行を表示したいと思います