Создание столбца, в котором будут отображаться предыдущие ставки
Я создаю столбец, в котором будет отображаться старый адрес. Всякий раз, когда адрес обновляется, срок действия старого адреса истекает за день до того, как новый должен вступить в силу, и новая строка с тем же номером учетной записи будет добавлена с новым адресом (например, старый адрес будет отображаться: 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