Sql Access 2007:删除部分重复的行

Sql Access 2007:删除部分重复的行,sql,duplicates,ms-access-2007,candidate-key,Sql,Duplicates,Ms Access 2007,Candidate Key,我将Excel电子表格中的数据导入Access 2007。有一个候选密钥CN。对于具有相同CN的行,所有列的数据都不同。下面的示例real data有100列,MsgNum的变化可能更频繁,但尚未与其他实例确认此模式,因此尽管我尝试在其上进行选择,但解决方案可能会忽略CN和MsgNum的组合可能是唯一的 Date | CN | MsgNum 2012-01-03 111-111-1111 101 2012-01-04 222-

我将Excel电子表格中的数据导入Access 2007。有一个候选密钥CN。对于具有相同CN的行,所有列的数据都不同。下面的示例real data有100列,MsgNum的变化可能更频繁,但尚未与其他实例确认此模式,因此尽管我尝试在其上进行选择,但解决方案可能会忽略CN和MsgNum的组合可能是唯一的

Date       |        CN        |  MsgNum
2012-01-03     111-111-1111       101
2012-01-04     222-222-2222       101
2012-01-05     222-222-2222       202
2012-01-05     333-333-3333       101
2012-01-05     333-333-3333       202
2012-01-04     444-444-4444       101
2012-01-04     444-444-4444       101
我没有访问SQL Server的权限。我只有2007年的访问权限。我不想使用Excel的删除重复项过程,因为获取到的数据在导出到Excel之前来自Access,因此我试图找到一种通过Access删除重复项的解决方案

在Access的查询设计中使用SQL,我尝试在WHERE子句中使用子查询,该子查询按CN分组,保留计数为1的实例,但删除所有实例,并且至少不保留一个实例

我试着只选择两列CN和MINMsgNum分组,这给了我想要的,但是当我在所有指定的列中运行它时,仍然会得到重复的列

我尝试使用查询向导查找单个列的重复项,并返回其余列,这有助于在视图中隔离重复项。因为我无法设置任何主键,所以我不确定如何连接表。当对所有列运行上一个MIN查询时,我遇到了与以前相同的问题


我试图在WHERE子句中设置一些东西来比较两列的组合,但是我读到这是不可能的。因此,我不知道如何解决这个问题,其中有一个候选密钥,但该候选密钥列上重复项的记录中的信息是不同的。我想做的是Excel 2007的“删除重复项”过程所做的,其中一列上的重复项可以删除并保留其他列。

您的问题有点让人困惑,您是说您只希望每个CN显示一次,即使所有其他列都不同?此外,可以在where子句中组合字段,您只需将每个字段与&运算符连接起来,请澄清?是的。我只希望每个CN出现一次。重复记录之间的信息是不同的,但保留其中任何一个都有助于最终生产。我没有遵循连接。你是说CN=x和MsgNum=y,还是说CN&MsgNum=x&y?我不熟悉T-SQL。T-SQL是SQL Server的一部分,而不是MS Access,我所说的连接是指几个字段连接在一起,例如:WHERE CN&MsgNum=blah。但是,由于您只希望每个CN使用一次,而不考虑其他数据,因此任何其他字段都需要与First、Last、Min、Max命令中的一个一起使用,尽管对于100列,我不能确切地说什么对您有效。哦,好吧,我认为任何Microsoft产品中的SQL都遵循t-SQL约定。谢谢你的澄清。关于这个问题,老鼠。