Я обновил скрипт в соответствии с вашими требованиями, и я надеюсь, что теперь мы настолько близки к вашему требованию.Результат запроса ниже представляет собой необработанные строки для сравнения данных.Теперь вы можете применить агрегацию к вашему набору результатов, применив GROUP by к YR (для сравнения данных за все годы), и даже вы можете добавить номер WK в GROUP, чтобы вы могли сравнивать данные по годам и неделям.
Примечание: как я применил ISO_Week, неделя начинается в понедельник и заканчивается в воскресенье.
WITH CTE (COMMON,DayMinus)
AS
(
SELECT 1,0 UNION ALL
SELECT 1,1 UNION ALL
SELECT 1,2 UNION ALL
SELECT 1,3 UNION ALL
SELECT 1,4 UNION ALL
SELECT 1,5 UNION ALL
SELECT 1,6 UNION ALL
SELECT 1,7 UNION ALL
SELECT 1,8 UNION ALL
SELECT 1,9
)
SELECT YEAR(your_date_column) YR,
DATEPART(ISO_WEEK, your_date_column) WK,
*
FROM your_table
WHERE YEAR(your_date_column) IN (2019,2018)
AND DATEPART(ISO_WEEK, your_date_column) IN
(
SELECT A.WKNUM-CTE.DayMinus AS [WEEK NUMBER]
FROM CTE
INNER JOIN (
SELECT 1 AS COMMON,DATENAME(ISO_WEEK,GETDATE()) WKNUM
) A ON CTE.COMMON = A.COMMON
)