我需要查找一個有效的查詢來計算每個歷史記錄表項的字段更改數。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
截圖幫助,但一些樣本數據會吸引更多的關注。 –