另一种方法是使用UNION
。它更像是一种检测许多表格字段差异的方法,但也适用于您的情况。
该技术在文章The shortest, fastest, and easiest way to compare two tables in SQL Server: UNION!中进行了描述,以比较两个单独的表格,但您可以分析一个表格。
将字段COL1
,COL2
等替换为您要比较的列。为了便于比较,我在内部SELECT
中添加了WHERE
子句,以便将您的数据有效地视为两个单独的表格。
SELECT MIN(TableName) as TableName, ID, COL1, COL2, COL3 ...
FROM
(
SELECT 'Actual' as TableName, A.ID, A.COL1, A.COL2, A.COL3, ...
FROM Finance_Data A
WHERE VERS_NM = 'Actual'
UNION ALL
SELECT 'Outlook' as TableName, B.ID, B.COL1, B.COl2, B.COL3, ...
FROM Finance_Data B
WHERE VERS_NM = 'Current Outlook'
) T
GROUP BY ID, COL1, COL2, COL3 ...
HAVING COUNT(*) = 1
ORDER BY ID
这里的主要关键是什么? – stb 2012-08-02 14:57:42