[舊表][1]我有一個問題,希望這里有人可以幫助我。我有 2 個表(舊的和新的),資料非常相似(列和行數相等),但在某些值上有一些差異。我[新表][2]想跟蹤這兩個表之間值(資料)的差異。我的想法是使用 LEFT JOIN 或 INNER JOIN 兩者都沒有給出我想要的結果。應該注意的是,通常作為主鍵的 ID 不包含唯一值(我添加了一個 Serial_Number 列來解決這個問題)。我真的只需要看到已經改變的價值觀。從影像中,您會注意到 5 和 6 的 Staff_ID 和 Amount 存在差異。有些情況下 Staff_ID 相同但 Amount 已更改。
方法一:
FROM Database_2
LEFT JOIN Database_1
ON Database_2.Staff_ID = Database_1.Staff_ID```
Approach 2:
```SELECT *
FROM Database_2
INNER JOIN Database_1
ON Database_2.Staff_ID = Database_1.Staff_ID```
Approach 3: (I added a Serial_Number column. This is not even working)
```SELECT Serial_Number, Staff_ID, PT, Price FROM Database_1
EXCEPT
SELECT Serial_Number, Staff_ID, PT, Price from Database_2;```
[1]: https://i.stack.imgur.com/2kXVg.png
[2]: https://i.stack.imgur.com/UqI5V.png
uj5u.com熱心網友回復:
要查看不在舊中的新行:
SELECT * FROM new a
WHERE NOT EXISTS (
SELECT 1 FROM old b
WHERE a.Serial_Number = b.Serial_Number
AND a.Staff_ID = b.Staff_ID
AND a.PT = b.PT
AND a.Price = b.Price
)
類似于查看舊的行而不是新的行。
uj5u.com熱心網友回復:
我建議您使用 Excel 書,它使用對單元格的絕對絕對參考,因此您可以在一張紙中粘貼“新”,在另一張紙中粘貼“舊”,在第三張紙中您可以輕松看到差異。擁有真正絕對參考的原因是能夠在“新”和“舊”作業表中洗掉/添加行和/或列,而 Excel 仍然按絕對位置將單元格與單元格進行比較。在 Excel 中進行比較的另一個好處是,您可以設定一個閾值,用于將“新”和“舊”中的兩個對應值視為相同的時間,以忽略由二進制算術引起的微小差異的“誤報”。
您可以從LightningGuide.net下載這樣的 Excel 書,稱為記錄串列比較器。
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/338660.html
