1
我在Access 2003中有兩個表格,這些表格包含型號和帳號,序號是主鍵。我怎麼能比較兩張表中的同一個序列號,看看有什麼變化?提取數據和比較Microsoft Access
例如:
比方說第2行是從表A和行3是從表B,我將如何從一個表(第2行)中提取的行並將其與相同的主鍵入不同的表格(第3行)。
我在Access 2003中有兩個表格,這些表格包含型號和帳號,序號是主鍵。我怎麼能比較兩張表中的同一個序列號,看看有什麼變化?提取數據和比較Microsoft Access
例如:
比方說第2行是從表A和行3是從表B,我將如何從一個表(第2行)中提取的行並將其與相同的主鍵入不同的表格(第3行)。
這個查詢會告訴你哪些[Serial Number]
值具有不同的值[Model Number]
和/或[Account Number]
。
SELECT
a.[Serial Number],
a.[Model Number] AS model_number_a,
b.[Model Number] AS model_number_b,
a.[Account Number] AS account_number_a,
b.[Account Number] AS account_number_b
FROM
TableA AS a
INNER JOIN TableB AS b
ON a.[Serial Number] = b.[Serial Number]
WHERE
a.[Model Number] <> b.[Model Number]
OR a.[Account Number] <> b.[Account Number];
注意查詢將僅檢查[Serial Number]
值是存在兩個表所示。如果您還想返回TableB
中不存在TableA.[Serial Number]
的行,請將聯接更改爲LEFT JOIN
。
如果[Model Number]
和/或[Account Number]
可以包含空值,則比較將更具挑戰性。如果您將在Access應用程序會話中運行查詢,則可以使用Nz()
來應對空值。
WHERE Nz(a.[Model Number], '') <> Nz(b.[Model Number], '')
如果您需要從外部Access運行查詢,請使用IIf()
表達式。
WHERE
IIf(a.[Model Number] Is Null, '', a.[Model Number])
<>
IIf(b.[Model Number] Is Null, '', b.[Model Number])
應該是什麼的比較結果如何? –
它只會覆蓋TableA中的數據並在update_type列中添加更改 – heinst