发薪期id按周分组

  • 本文关键字:id sql datetime
  • 更新时间 :
  • 英文 :


我如何制作sql来识别我的付款期?我有一张表,里面有支付期id的列表,每年26。2012年的最后一个支付期是201226,2013年的第一个支付期为201301,我有没有办法让sql计算201226+1=201301,201226+2=201302?

如果您想保留当前的设计,您可以简单地添加另一个字段,它是一个增量序列号。使用序列号和当前字段的组合,您可以到达下一个或上一个付款期

这样的东西应该对你有用。我包含了两个额外的字段YearPeriod,以防您需要它们:

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的样本。

相关内容

  • 没有找到相关文章