0
В случае периодов повторения необходимо удалить второе вхождение (от 15 до 15 минут), но запрос всегда возвращает все или ничего.Удалить в цикле SQL Server
DECLARE @DatAteTemp DATE
DECLARE @HorAteTemp TIME
DECLARE cursor_i CURSOR FOR
SELECT DatAte, HorAte
FROM @TABLE
OPEN cursor_i
FETCH NEXT FROM cursor_i INTO @DatAteTemp, @HorAteTemp;
WHILE @@FETCH_STATUS = 0
BEGIN
IF (select count(*) from @TABLE where HorAte = DATEADD(MINUTE, -15, @HorAteTemp)) > 0
--DATEADD(MINUTE, -15, @HorAteTemp) = @HorAteTemp
BEGIN
DELETE FROM @TABLE WHERE CURRENT OF cursor_i
END
FETCH NEXT FROM cursor_i INTO @DatAteTemp, @HorAteTemp
END
CLOSE cursor_i;
DEALLOCATE cursor_i;
Другой:
DECLARE @aux TIME = DATEADD(MINUTE, -15, @HorAteTemp)
IF (select count(*) from @TABLE AS oito where oito.HorAte = @aux) > 0
Ваше 'состоянии IF' никогда не может быть правдой. Это как сказать «IF X - 15 = X». –
Извините, я отправил неправильный запрос! И этот запрос не удаляет строки. –