Ms-Access
比較兩行並找出它們之間的差異 第二列中的哪一個?
我有一個包含以下數據的表:
ID Name LastName 1 William Johns 2 John Adam 4 William Smith 3 Mark Stephan
我想查找所有名稱相同但姓氏不同的記錄。所以結果將是這樣的:
ID Name LasName 1 William Johns 2 William Smith
什麼是MS。訪問查詢或方法來查找所有這些記錄?
你可以這樣改寫它:
返回具有相同
Name
和不同的另一行的每一行LastName
如果您熟悉 EXISTS 謂詞,這很容易轉換為 SQL:
SELECT * FROM YourTable AS t1 WHERE EXISTS ( SELECT * FROM YourTable AS t2 WHERE t2.Name = t1.Name AND t2.LastName <> t1.LastName ) ;
假設沒有重複的 (Name, LastName) 對,另一種方法如下。
首先選擇所有多次出現的名稱,並從中創建一個查詢。
這可以通過 Access GUI 通過以下方式完成:
完成此操作後,創建另一個查詢,
JOINs
該查詢與原始表一起使用Name
,用作公共列:這就是你最終得到的(從你的數據開始)
對應的SQL:
NamesThatAppearMultipleTimes
詢問:SELECT t.Name FROM t GROUP BY t.Name HAVING (((Count(t.ID))>1));
和
NamesThatAppearMultipleTimes-and-LastNames
SELECT t.ID, t.Name, t.LastName FROM NamesThatAppearMultipleTimes INNER JOIN t ON NamesThatAppearMultipleTimes.Name = t.Name ORDER BY t.Name, t.LastName;