Согласно тому, что я понимаю, вам нужны Предметы, в которых есть 3 ошибки, и они расположены в последовательных строках по порядку по дате.Пожалуйста, обратитесь мой код и эта поддержка SQL Server
/*create table*/
CREATE TABLE YourTable( PK_Id int NOT NULL IDENTITY(1,1) primary key,
ID int NOT NULL,
CreatedDate datetime NOT NULL,
Error int NOT NULL,
ItemName nvarchar(100) NULL);
/*sample data 1*/
INSERT INTO YourTable VALUES (1, '2018-10-13 10:10:10', -1, 'Item-1'),
(2, '2018-10-13 10:10:15', -1, 'Item-2'),
(3, '2018-10-13 10:10:17', -1, 'Item-3'),
(4, '2018-10-13 10:10:17', -1, 'Item-4'),
(1, '2018-10-14 10:10:10', 0, 'Item-1'),
(2, '2018-10-14 10:10:15', 0, 'Item-2'),
(3, '2018-10-14 10:10:17', 0, 'Item-3'),
(4, '2018-10-14 10:10:17', 0, 'Item-4'),
(1, '2018-10-15 10:10:10', 1, 'Item-1'),
(2, '2018-10-15 10:10:15', 1, 'Item-2'),
(3, '2018-10-15 10:10:17', 1, 'Item-3'),
(4, '2018-10-15 10:10:17', 1, 'Item-4')
/*sample data 2*/
INSERT INTO YourTable VALUES (5, '2018-10-16 10:10:10', -1, 'Item-5'),
(5, '2018-10-16 10:10:15', 0, 'Item-5'),
(5, '2018-10-16 10:10:17', 1, 'Item-5')
SELECT Id, ItemName
FROM YourTable
GROUP BY Id, ItemName
HAVING COUNT(Error) = 3 /*check number of errors*/
AND SUM(Error) = 0 /*check all 3 errors*/
AND SUM(PK_Id) = MIN(PK_Id) * 3 + 3 /*check right after each error*/