Есть ли способ обновить строки таблицы на основе других значений строк в той же таблице - PullRequest
0 голосов
/ 23 марта 2020

У меня есть таблица, подобная приведенной ниже

enter image description here

Если CC дата находится между checkIN и CheckOut, дата того же номера ссылки Нет других строк, нам нужно обновить CheckIn и CheckOut дата этого CCDate. Как показано ниже

enter image description here

Не могли бы вы помочь мне в этом

Заранее спасибо ....

1 Ответ

0 голосов
/ 23 марта 2020

Вы можете использовать оконные функции:

with cte as (
    select 
        t.*,
        min(checkin) over(partition by refno) min_checkin,
        max(checkout) over(partition by refno) max_checkout
    from mytable t
) 
update cte 
set checkin = min_checkin, checkout = max_checkout
where ccdate between min_checkin and max_checkout

Обратите внимание, что это неявно предполагает, что у каждого refno есть только одно значение checkin и checkout.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...