Создание столбца, в котором будут отображаться предыдущие ставки

Я создаю столбец, в котором будет отображаться старый адрес. Всякий раз, когда адрес обновляется, срок действия старого адреса истекает за день до того, как новый должен вступить в силу, и новая строка с тем же номером учетной записи будет добавлена ​​с новым адресом (например, старый адрес будет отображаться: From: 10/01/2020 До: 31.12.2021 и новый адрес От: 01.01.2022 До: 12-31-9999). Я пытаюсь показать старый и новый адрес рядом для каждого номера учетной записи в SQL, но я получаю нули.

Образец данных

      DECLARE @PreviousValidTo DATE;
SELECT @PreviousValidTo = DATEADD(DAY, -1, Z.ValidFrom)
FROM Address.NewAddress Z
SELECT Address, ValidFrom, ValidTo
CASE
            WHEN @PreviousValidTo = C.ValidFrom
            THEN C.Address
            ELSE 0
            END AS PreviousAddress
FROM Address.NewAddress C

1 ответ

Возможно, вы могли бы использовать lag

      select *,
  Lag(address,1,'0') over(partition by accountnumber order by validto) PreviousAddress
from address.NewAddress
Другие вопросы по тегам