В SQL Server 2012 у меня есть таблица t1
, в которой мы храним список исключенных товаров.
Я хотел бы добавить столбец LastExclusionDate
для хранения даты с момента появления продуктаисключено.
Каждый день продукт добавляется в таблицу, если он исключен.Если нет, строки не будет, и в следующий раз, когда продукт будет исключен, будет дата пропуска с предыдущей вставкой.
Я бы хотел найти запрос T-SQL для обновления LastExclusionDate
column.
Я хотел бы использовать его для заполнения столбца LastExclusionDate
в первый раз (= инициализация) и использовать его каждый день для обновления столбца при добавлении новой строки
I 'Я пробовал этот запрос, но я не знаю, как получить LastExclusionDate
!
;WITH Cte AS
(
SELECT
product_id,
CreationDate,
LAG(CreationDate) OVER (PARTITION BY Product_ID ORDER BY CreationDate) AS GapStart,
(DATEDIFF(DAY, LAG(CreationDate) OVER (PARTITION BY Product_id ORDER BY CreationDate), CreationDate) -1) AS GapDays
FROM
#t1
)
SELECT *
FROM cte
Вот некоторые примеры данных:
+------------+--------------+--------------------------------+
| product_id | CreationDate | LastExclusionDate_(toPopulate) |
+------------+--------------+--------------------------------+
| 100 | 2018-05-01 | 2018-05-01 |
| 100 | 2018-05-02 | 2018-05-01 |
| 100 | 2018-05-03 | 2018-05-01 |
| 100 | 2018-06-01 | 2018-06-01 |
| 100 | 2018-06-02 | 2018-06-01 |
| 200 | 2018-09-01 | 2018-09-01 |
| 200 | 2018-09-02 | 2018-09-01 |
| 200 | 2018-09-17 | 2018-09-17 |
+------------+--------------+--------------------------------+
Спасибо