s trochou predstavivosti sa to da aj jednym selectom :)
Opakujuci kod mozes nahradit scalarnou funkciou :)
select
LEFT(MAX(CONCAT([YEAR], REPLICATE('0', 2 - LEN([WEEK]) ), [WEEK])), 4) MAX_YEAR,
CAST(RIGHT(MAX(CONCAT([YEAR], REPLICATE('0', 2 - LEN([WEEK]) ), [WEEK])), 2) AS INT) MAX_WEEK,
LEFT(MIN(CONCAT([YEAR], REPLICATE('0', 2 - LEN([WEEK]) ), [WEEK])), 4) MIN_YEAR,
CAST(RIGHT(MIN(CONCAT([YEAR], REPLICATE('0', 2 - LEN([WEEK]) ), [WEEK])), 2) AS INT) MIN_WEEK
from data where FID = 1 AND [UID] = 1