У меня есть таблица, где моя env_value = 202052 (2020 - это ГГГГ, а 52 - недели в году). В конце года, когда он достигает De c на прошлой неделе, то есть 202052, тогда он должен начинаться с недели нового года, которая 202101 (env_value) В ответе на запрос, который я пробовал, выводится значение 202053, но я ожидаю увидеть 202101. Я не могу понять, как это сделать.
CREATE TABLE env_sys(
[env_cat] [nvarchar](50) NOT NULL,
[env_opt] [nvarchar](50) NOT NULL,
[env_value] [nvarchar](255) NOT NULL)
insert into env_sys
values( 'REPORT_EXTRACT', 'LAST_FILE_PROCESSED' , '202052')
select
rtrim(case when substring(env_value,5,2) between '01' and '08'
then substring(env_value,1,4)+'0'+cast(cast(substring(env_value,5,2)as int)+1 as char(2))
when substring(env_value,5,2) between '09' and '52'
then substring(env_value,1,4)+cast(cast(substring(env_value,5,2)as int)+1 as char(2))
else
substring(env_value,1,3)+cast(cast(substring(env_value,4,1)as int)+1 as char(1))+'01'
end)
from env_sys
where env_cat = 'REPORT_EXTRACT'
and env_opt = 'LAST_FILE_PROCESSED'