SQL рекурсивный cte путем сравнения между строками

Привет, не могли бы вы помочь решить приведенный ниже сценарий, мне нужно выполнить обновление только после сравнения всех строк, связанных с custid 100, и решить, у кого последняя дата (100 или 400), этот идентификатор должен оставаться активным, мои существующие обновления обновляются на основе обновлений. на одном ряду сравнения. Не могли бы вы помочь, как мы можем сделать это с помощью рекурсии и запустить обновление в том же запросе?

ТАБЛИЦА

   ID   CustID    MCustID Date        MDate
   1    100       200     2017-01-10  2017-01-15 
   2    100       300     2017-01-10  2017-01-07
   3    100       400     2017-01-10  2017-01-21

КОД

update A
set active = 0
from Cust A inner join tblMatch M
on A.CustomerID = case when M.Date < M.MDate then M.CustId else M.MCustId     end

0 ответов

Другие вопросы по тегам