Вы можете использовать подзапрос, чтобы повторно запросить таблицу для подсчета. Единственная сложная часть - это фильтры, используемые для подсчета. Вывод в этом примере отличается от вашего ожидаемого результата в вопросе, но на первый взгляд я не уверен, как вы определили ожидаемый результат, учитывая правила алгоритма.
DECLARE @temp TABLE (Date date, Emp1 char(1), [Case] char(2), Priority int)
INSERT INTO @temp VALUES
('2018-06-01', 'A', 'A1', 0)
,('2018-06-03', 'A', 'A2', 0)
,('2018-06-03', 'A', 'A3', 0)
,('2018-06-03', 'A', 'A4', 1)
,('2018-06-03', 'A', 'A5', 2)
,('2018-06-04', 'A', 'A6', 0)
,('2018-06-01', 'B', 'B1', 0)
,('2018-06-02', 'B', 'B2', 0)
,('2018-06-03', 'B', 'B3', 0)
SELECT *
,(SELECT COUNT(*)
FROM @temp T2
WHERE T2.Emp1 = T1.Emp1
AND T2.[Date] <= DATEADD(DAY, 7, T1.[Date])
AND T2.Priority = T1.Priority
AND T2.[Case] < T1.[Case]
) AS [PriorityCountinLast7days]
FROM @temp T1
Производит продукцию:
Date Emp1 Case Priority PriorityCountinLast7days
----------------------------------------------------------------
2018-06-01 A A1 0 0
2018-06-03 A A2 0 1
2018-06-03 A A3 0 2
2018-06-03 A A4 1 0
2018-06-03 A A5 2 0
2018-06-04 A A6 0 3
2018-06-01 B B1 0 0
2018-06-02 B B2 0 1
2018-06-03 B B3 0 2