日付で構成される一時テーブルを作成するストアド プロシージャがあります (ループによってテーブルが作成されます)。
その一時テーブルに結合するビューが必要です。
残念ながら、システムの愚かさと、データベースを作成した人による設計の悪さのせいで、データベースは絶対にビューである必要があり、そのビューでこの結合を行う必要があります。アーキテクチャが正しいかどうかについて議論するつもりはありません。私はそれをまったく制御できないからです。
私の質問は次のとおりです。ビューからループを実行するものにアクセスする方法はありますか? または、ループを使用せずに日付のテーブルを構築するための超クールな方法の可能性もあります - それも素晴らしいでしょう。
それ以外の場合は、静的に作成された日付テーブルをデータベースのどこかに隠して、気付かないことを願っています。
編集:ループは次のようになります。
declare @years table (
year date,
label nvarchar(6)
)
declare @d date
set @d = '20060101'
while(@d < '20400101')
begin
insert into @years select dateadd(month, 6, @d),
'FY' + CONVERT(nvarchar(4), year(@d))
set @d = DATEADD(year, 1, @d)
end
select * from @years