Простой SQL-запрос, но запутался - PullRequest
1 голос
/ 14 октября 2010

У меня проблема с написанием SQL-запроса, который должен быть легким, но я не могу сосредоточиться на этом запросе.Следовательно, мне нужна помощь с этого сайта.

Проблема: у меня есть таблица «Запрос» со следующими столбцами -

CreatedOn: Когда я создаю новый запрос, CreatedOn заполняется текущей датой и временем

LastModifiedOn: Когда кто-либо изменяет запись, это поле обновляется с учетом этой измененной текущей даты и времени.По умолчанию это значение равно onlyOn при первом создании запроса.

Теперь необходимо проверить логику: изначально состояние запроса - «Отправлено».Если запрос не изменяется в течение следующих 10 минут или с интервалом в 10 минут, состояние запроса должно быть обновлено до «Отменено».Теперь я не могу понять, как написать этот запрос.

РЕДАКТИРОВАТЬ: если запрос изменяется с интервалом в 10 минут, то я не хочу обновлять запрос на отмененный.i.ei В общем, я хочу обновить статус до отмененного, только если запись не изменялась в течение последних 10 минут

Дайте мне знать, если требуются какие-либо другие детали.Можно предположить, что есть также столбец RequestID, который является уникальным.

Ответы [ 4 ]

4 голосов
/ 14 октября 2010
update Request 
set State = 'Cancelled' 
where RequestID = @MyRequestID
    and State = 'Submitted' 
    and LastModifiedOn < dateadd(mi, -10, getdate()) 

Примечание: Этот запрос предназначен для SARGable для лучшей производительности, не используя LastModifiedOn в функции.

1 голос
/ 14 октября 2010

Вы ищете DateDiff ?

DATEDIFF(minute, LastModifiedOn, getdate()) > 10
1 голос
/ 14 октября 2010

Запрос на обновление set State = 'Cancelled', LastModifiedOn = getdate () где State = 'Submitted' и datediff (min, LastModifiedOn, getdate ())> 10

1 голос
/ 14 октября 2010
update Request 
set State='Cancelled' 
where State='Submitted' AND dateadd(mi, -10, GetDate()) < ModifiedOn
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...