У меня есть таблица под названием Rateplan и данные выглядит следующим образом:Как обновить поле даты диапазоны
Например:
SELECT Rateplanid
, listingid
, rentalunitid
, validfromdate
, validtodate
FROM Rateplan
WHERE listingid = 721760
AND rentalunitid = 3027217
ORDER BY
listingid
, rentalunitid
, validfromdate
, validtodate
Rateplanid listingid rentalunitid validfromdate validtodate
3 721760 3027217 2012-08-09 00:00:00.000 2012-10-18 00:00:00.000
22563 721760 3027217 2012-10-26 00:00:00.000 2012-11-27 00:00:00.000
25412 721760 3027217 2012-10-30 00:00:00.000 2012-10-30 00:00:00.000
25421 721760 3027217 2012-10-31 00:00:00.000 2012-11-27 00:00:00.000
26945 721760 3027217 2012-11-01 00:00:00.000 2012-11-07 00:00:00.000
34807 721760 3027217 2012-11-14 00:00:00.000 2012-11-27 00:00:00.000
35947 721760 3027217 2012-11-15 00:00:00.000 2012-11-15 00:00:00.000
43793 721760 3027217 2012-11-29 00:00:00.000 2013-01-03 00:00:00.000
62665 721760 3027217 2013-01-03 00:00:00.000 2199-12-31 00:00:00.000
Логика Validtodate в текущей строке должны быть обновлены на основе Validfromdate следующей строки. Если значение ValidfromDate nextrow равно < = Validtodate текущей строки, то необходимо обновить его на один день меньше, чем значение ValisfromDate следующего ряда. Но мы также должны убедиться, что обновленный Validtodate должен быть меньше или равен validfromdate текущей строки.
ожидается ВЫВОД:
Rateplanid listingid rentalunitid validfromdate validtodate
3 721760 3027217 2012-08-09 00:00:00.000 2012-10-18 00:00:00.000
22563 721760 3027217 2012-10-26 00:00:00.000 2012-10-29 00:00:00.000
25412 721760 3027217 2012-10-30 00:00:00.000 2012-10-30 00:00:00.000
25421 721760 3027217 2012-10-31 00:00:00.000 2012-10-31 00:00:00.000
26945 721760 3027217 2012-11-01 00:00:00.000 2012-11-07 00:00:00.000
34807 721760 3027217 2012-11-14 00:00:00.000 2012-11-14 00:00:00.000
35947 721760 3027217 2012-11-15 00:00:00.000 2012-11-15 00:00:00.000
43793 721760 3027217 2012-11-29 00:00:00.000 2013-01-02 00:00:00.000
62665 721760 3027217 2013-01-03 00:00:00.000 2199-12-31 00:00:00.000
В таблице Rateplan содержится первичный ключ? – Endrju
@zxspectrum yes Я добавил первичный ключ Ratepaid на мой вопрос – peter