Я посмотрел на очень много других вопросов, и ничто не вполне соответствует моему вопросу или не дает мне ответ, который мне нужен, может быть, я просто медленный сегодня: (
DECLARE @t TABLE (
[InstructionId] INT,
[InstructionDetailId] INT,
[Sequence] INT,
[Status] INT
)
INSERT INTO @t SELECT 222,111,1, 2
INSERT INTO @t SELECT 222,112,2,2
INSERT INTO @t SELECT 222,113,3,4
INSERT INTO @t SELECT 222,114,4,4
INSERT INTO @t SELECT 222,115,5,2
INSERT INTO @t SELECT 222,116,6,4
INSERT INTO @t SELECT 222,117,7,2
INSERT INTO @t SELECT 222,118,8,4
INSERT INTO @t SELECT 222,119,9,4
INSERT INTO @t SELECT 222,120,10,2
INSERT INTO @t SELECT 222,121,11,2
Мне нужно найти, для каких InstructionDetailId есть последовательные сбои (Status = 4), используя поле [Sequence] для проверки порядка, чтобы определить, являются ли они последовательными. Таким образом, для вышеупомянутых InstructionDetailId 113 и 114 будут последовательными сбоями, поскольку их [Sequence] равен 3 и 4, то же самое для InstructionDetailId 118 и 119 будет последовательными сбоями. Я пробовал так много вариаций номеров строк и cte's, и я не могу его взломать :( Кстати, это для SQL Server 2008 R2.
Ожидаемый результат:
InstructionId InstructionDetailId Sequence Status
222 113 3 4
222 114 4 4
222 118 8 4
222 119 9 4
Спасибо всем!