我在表格中有以下列和数据:
PeriodID Days
1 NULL
2 NULL
3 NULL
4 NULL
5 NULL
然后我有几天应按如下划分:
如果Days< 5(例如2)我将:
PeriodID Days
1 NULL
2 NULL
3 NULL
4 1
5 1
如果天数> = 5且天数%5 = 0(例如5),我将会:
PeriodID Days
1 1
2 1
3 1
4 1
5 1
如果天数> 5和天%5!= 0(例如12)我将:
PeriodID Days
1 3
2 3
3 2
4 2
5 2
我能用循环来做这件事,我希望使用一些智能技术或T-SQL函数来获得更好的解决方案。提前谢谢。
答案 0 :(得分:2)
这应该适合你:
DECLARE @numDays int
SET @numDays = 12
UPDATE someTable
SET Days = CASE WHEN @numDays < 5
THEN CASE WHEN @numDays >= 6 - PeriodId THEN 1 ELSE NULL END
ELSE FLOOR((@numDays + 5 - PeriodId) / 5)
END