アドホック集計テーブルの助けを借りて、我々は簡単年度計算することができます。この場合、私たちは1980年から50年後に始まります。どちらの項目も必要に応じて微調整できます。
DECLARE @table TABLE (ClaimNo varchar(25));
INSERT INTO @table (ClaimNo)
VALUES
('20161030'),
('20161124'),
('20160815'),
('20170115'),
('20180101');
Select A.ClaimNo
,FiscalYear = Str(Year(D1),4)+' - '+Str(Year(D2),4)
From @table A
Join (
Select Top 50 D1=cast(DateAdd(YY,Row_Number() Over (Order By Number)-1,'1980-07-01') as Date)
,D2=cast(DateAdd(YY,Row_Number() Over (Order By Number),'1980-06-30') as Date)
From master..spt_values
) D
on ClaimNo Between D1 and D2
戻り
ClaimNo FiscalYear
20161030 2016 - 2017
20161124 2016 - 2017
20160815 2016 - 2017
20170115 2016 - 2017
20180101 2017 - 2018
注:ClaimNoがintである場合は、単に
on cast(ClaimNo as varchar(8)) Between D1 and D2
にON句を変更するには、 'SELECT'、すなわち年度含めますか会計年度に別の列を作成するか、会計年度に返された行を制限します。 'どこのFiscalYear(ClaimNo)= 1066'ですか?ヒント:適切なソフトウェア(MySQL、Oracle、DB2など)とバージョンの両方でデータベースの質問にタグを付けると便利です。 'sql-server-2014'です。構文と機能の相違は、しばしば答えに影響します。 – HABO