SQL Server
- 3 ответа
- 0 вопросов
3
Вклад в тег
SELECT DISTINCT
orders.user_id
FROM
orders
INNER JOIN
orders AS canceledOrders
ON
canceledOrders.user_id = orders.user_id
AND canceledOrders.status = orders.status
AND canceledOrder.order_id <> orders.order_id
AND canceled.timestamp - orders.timestamp BETWEEN 0 AND 1800
WHERE
orders.status = 'cancel'
UPDATE
ОбновляемаяТаблица
SET
ПолеОбновляемойТаблицы1 = Значение1
, ПолеОбновляемойТаблицы2 = Значение2
FROM
ОбновляемаяТаблица
LEFT OUTER JOIN
ДополнительнаяТаблица
ON
ДополнительнаяТаблица.Ключ = ОбновляемаяТаблица.Ключ
WHERE
Условия фильтрации
UPDATE
Account
SET
UsrLastActivityDate = GETDATE()
, UsrProsrochen = 1
FROM
Account account -- Основная обновляемая таблица
LEFT OUTER JOIN
Activity activity -- дополнительная таблица с информацией о задачах
ON
activity.AccountId = account.Id
WHERE
TypeId = '03a75490-53e6-df11-971b-001d60e938c6'
AND DATEDIFF(dd, ModifiedOn ,GETDATE()) > 60
AND activity.Id IS NULL -- аналогичный SELECT фильтр на отсутствие задач
SELECT
T.id
FROM
(
SELECT
id_work
FROM
T
WHERE
type IN (2, 4)
GROUP BY
id_work
HAVING
count(distinct type) = 2
) AS filteredIdWork
INNER JOIN
T
ON
T.id_work = filteredIdWork.id_work
AND T.type IN (2, 4)