我需要查找一个有效的查询来计算每个历史记录表项的字段更改数。TSQL查询历史记录表字段更改计数
在每一个客户表的所有数据值的变化,记录的副本进入历史表的时间。
我想要一种方法来统计历史表中每个条目的更改数量。每个字段将比较当前条目和前一条目以确定差异。
有没有很好的方法来做到这一点?没有sproc?
我需要查找一个有效的查询来计算每个历史记录表项的字段更改数。TSQL查询历史记录表字段更改计数
在每一个客户表的所有数据值的变化,记录的副本进入历史表的时间。
我想要一种方法来统计历史表中每个条目的更改数量。每个字段将比较当前条目和前一条目以确定差异。
有没有很好的方法来做到这一点?没有sproc?
您可以开始做如下所示。我目前没有SQL Server环境,无法验证一切是否正确。
WITH cte AS (
SELECT *, rn = ROW_NUMBER() OVER (PARTITION BY CustomerID ORDER BY ID)
FROM CustomerHistory
)
SELECT
c1.*,
FieldChangeCount =
(CASE WHEN c1.ServiceLevel <> c2.ServiceLevel THEN 1 ELSE 0 END)
+
(CASE WHEN c1.Status <> c2.Status THEN 1 ELSE 0 END)
FROM cte c1
LEFT JOIN cte c2
ON c1.CustomerID = c2. CustomerID
AND c2.rn = c1.rn - 1
ORDER BY c1.LogID
截图帮助,但一些样本数据会吸引更多的关注。 –