0

支払い期間を認識するためにSQLを作成するにはどうすればよいですか?年間26回の支払い期間IDのリストを含むテーブルがあります。2012年の最後の支払い期間は201226、2013年の最初の支払い期間は201301ですが、SQLで201226 + 1 = 201301、201226 + 2 = 201302を計算する方法はありますか?

4

2 に答える 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 に答える