多年來有一些類似的線程關於這個,但我還沒有找到或能夠做我想要的。SQL Server:列出表之間的差異
我目前有兩張表,它們具有通過腳本生成的相同模式。出於名稱的原因,一個是「results_prior」,另一個是「results_current」。這個新的查詢將理想地每個月運行一次,並查找是否有任何差異。例如:
TABLE:results_prior
----------------------------------------
| ID | ENVIRONMENT | EDITION | CONTACT |
----------------------------------------
| 03 | Development | 2008 | Bob |
----------------------------------------
| 05 | Production | 2012 | Phil |
----------------------------------------
| 09 | Development | 2008 | Erik |
----------------------------------------
| 13 | Production | 2012 | Ashley |
----------------------------------------
| 22 | Production | 2012 | Erik |
----------------------------------------
TABLE:results_current
----------------------------------------
| ID | ENVIRONMENT | EDITION | CONTACT |
----------------------------------------
| 03 | Development | 2008 | Bob |
----------------------------------------
| 05 | Production | 2012 | Phil |
----------------------------------------
| 22 | Production | 2012 | Erik |
----------------------------------------
當兩個進行比較時,結果應該是:
----------------------------------------
| ID | ENVIRONMENT | EDITION | CONTACT |
----------------------------------------
| 09 | Development | 2008 | Erik |
----------------------------------------
| 13 | Production | 2012 | Ashley |
----------------------------------------
由於09和13是在results_current。同樣,這也許是棘手的部分,如果results_current比results_prior有更多的結果,也要做同樣的事情。所以,反之亦然。
對不起,我沒有示例代碼來關閉。我一直在使用UNION,JOINs和除了最近幾個小時,我覺得我的邏輯(再次,在SQL Server中)沒有任何意義。任何援助將不勝感激。
我會做同樣的事情,但我會代替「NOT EXISTS」爲「NOT IN」的條款。 NOT EXISTS就像一個cut操作符一樣工作,所以在第一次成功時,它會停止並且不會爲該上下文評估更多的行。 –
對我的問題的巨大回復。然而,這是一個給我的結果,而不必跳過許多籃球。我還用*替換了所有列,並設法得到相同的結果。如果每一列/欄位都添加在路上,這可能是有益的。 – Erik