我有两个表格完全相同的列,一个是最新版本的数据,另一个是以前的版本。我正在尝试创建一个报告/查询,告诉我在较新版本中哪个列与旧版本相比更改了新旧值。多列可以更改值。该表有一个字段(最后更改日期),告诉我哪些行已更改但我不知道更改了什么。
有办法做到这一点吗?我觉得我错过了一些显而易见的事情。我正在研究MS SQL Server 2008 R2。
我设想输出是这样的:
ID FieldChanged OldValue NewValue 1234 Class 88515 88516 5555 Status A I 6789 Code 321 322
答案 0 :(得分:0)
select * from new_data
inner join old_data on new_data.id = old_data.id where (
new_data.column_1 != new_data.column_1 OR
new_data.column_2 != new_data.column_2 OR
--...
new_data.column_N != new_data.column_N OR
)
或者,您可以在system tables查询列名并从结果中构建查询。