查询以识别对一组数据的更改?

时间:2016-12-08 15:19:26

标签: sql database excel ms-access

我有两份报告。一个是三周前生成的,另一个是几天前生成的。这些报告共享相同的字段(姓氏,名字,SSN等),但数据明显不同。我们编辑了特定字段。可能已经编辑了客户的SSN以反映数据输入错误。他们的地址信息可能已更新。

我们尚未安装审核表作为数据库的一部分,因此我们需要确定另一种方法来识别报告之间的变化。有几个明显的问题。

1)当我们将数据导出到Excel时,不保留记录ID。单个客户可能有多个记录来考虑不同的地址,因此他们的SSN不是唯一的。 2)我们不需要确定变化。我们需要对它们进行分类。如果对SSN进行了更改,请单独报告,而不是对地址所做的更改。

所以,如果我要将这两个文件导入数据库,是否有可以解决这个问题的查询?我和我的团队已经对此进行了一段时间的头脑风暴,我们一无所知。如果没有唯一的记录ID,我们打算在哪个字段上链接?

如果您希望我对问题的任何部分更具体,请告诉我,我会尽我所能帮助您。

报告位于从MS Access 2013中运行的查询中导出的Excel文件中。

谢谢。

1 个答案:

答案 0 :(得分:0)

因此,在导出到Excel时丢失了报表时,您的报表没有PK。假设你无法恢复它,除非有其他可以量化为PK的东西,否则你运气不好。

如果我是你,我会做的是将两个报告文件作为单独的表导入: table_old table_new

然后我会做一个减号声明来消除确切的副本:

select * from table_old
minus
select * from table_new

这将显示旧报告中存在的记录,但已删除或修改过。然后你就可以做反转

select * from table_new
minus
select * from table_old

这将为您提供更改和/或新/删除的记录。

话虽如此,对记录进行分类的唯一真正方法是将SSN纳入其中。没有PK将使这个非常不精确的科学,但是在失去PK的时候你将不得不忍受这种接近而不是精确的。