2012-08-29 101 views
0

我有兩個具有相同結構的表。 a.ID *(VARCHAR(10)),a.CODE_ASS(VARCHAR(1))*和b.ID *(VARCHAR(10)),b.CODE_ASS(VARCHAR(1))*vb.net比較兩個表並找出差異

表「a」包含2010年數據,表「b」包含2013年數據。

這兩個表在每個表中應該沒有相同的行數,但公共ID應該是相同的。我需要比較表格並找出差異。

enter image description here

正如你可以看到在這個例子,綠色的行是行,紅色應該是一個錯誤。 ID 2,4和5是錯誤,因爲有一些差異。 「a」表中的ID 6即使已經在表「b」中刪除也可以。

回答

1

看來您正在使用SQL表,如果您編寫查詢來加入ID上的數據並僅選擇值不同的地方。你真的想假設0 = NULL?

SELECT a.ID FROM a INNER JOIN b ON a.ID = b.ID WHERE a.ID<>b.ID; 

如果你想0 = NULL,那麼你需要將NULLs更改爲0 - 這看起來像下面這樣。

SELECT a.ID FROM a INNER JOIN b ON a.ID = b.ID WHERE ISNULL(a.ID,0)<>ISNULL(b.ID,0); 

ISNULL(PARAM,值)將NULL更改爲值,在這種情況下0

我使用的是一個記錄集對象是的話你需要做的就是遍歷猜測結果。

+0

它看起來很完美! TKS!我正在尋找一個VB.net控制檯腳本,但是......您的解決方案可行! – djobert