支払い期間を認識するためにSQLを作成するにはどうすればよいですか?年間26回の支払い期間IDのリストを含むテーブルがあります。2012年の最後の支払い期間は201226、2013年の最初の支払い期間は201301ですが、SQLで201226 + 1 = 201301、201226 + 2 = 201302を計算する方法はありますか?
質問する
166 次
2 に答える
0
現在のデザインを維持したい場合は、増分シーケンス番号である別のフィールドを追加するだけです。シーケンス番号と現在のフィールドの組み合わせを使用して、次または前の支払い期間に到達できます
于 2013-02-14T01:44:59.690 に答える
0
このようなものがうまくいくはずです。私は 2 つの追加フィールドを含めYear
ましPeriod
た。これらが必要になった場合に備えて:
WITH CTE AS (
SELECT
PayPeriodId,
ROW_NUMBER() OVER (ORDER BY PayPeriodId) RN,
Left(PayPeriodId, 4) as Year,
Right(PayPeriodId, 2) as Period
FROM PayPeriods
)
SELECT NextPeriod.PayPeriodId
FROM CTE CurrentPeriod
JOIN CTE NextPeriod ON CurrentPeriod.RN + 1 = NextPeriod.RN
WHERE CurrentPeriod.PayPeriodId = '201226'
そして、ここにいくつかのサンプルFiddleがあります。
于 2013-02-14T02:03:11.570 に答える