Ms access 将记录放入新表中,该表不';t同一名称不能有6个或6个以上的不同地址

Ms access 将记录放入新表中,该表不';t同一名称不能有6个或6个以上的不同地址,ms-access,unique,Ms Access,Unique,如果重复的名称超过6个,并且同一名称有六个不同的地址,那么我不想将它们输出到KeepThese表: harry baker 1 street harry baker 2 street harry baker 3 street harry baker 4 street harry baker 5 street harry baker 6 street donald ross 11th street 所以哈里·贝克应该被排除在新的表格之外。唐纳德·罗斯应该被包括在新的表格中 这是我现有的查询: S

如果重复的名称超过6个,并且同一名称有六个不同的地址,那么我不想将它们输出到KeepThese表:

harry baker 1 street
harry baker 2 street
harry baker 3 street
harry baker 4 street
harry baker 5 street
harry baker 6 street
donald ross 11th street
所以哈里·贝克应该被排除在新的表格之外。唐纳德·罗斯应该被包括在新的表格中

这是我现有的查询:

SELECT F.* INTO KeepThese
FROM final_output AS F 
INNER JOIN (SELECT DISTINCT F.fullName FROM final_output 
AS F LEFT JOIN (SELECT fullName FROM final_output 
AS F GROUP BY fullName HAVING COUNT(*) >=6)  
AS NamesToReject ON NamesToReject.fullName = F.fullName WHERE NamesToReject.ID IS NULL)  
AS NamesToKeep ON NamesToKeep.fullName  = F.fullName;
返回“输入参数值NamesToReject.ID” 但这是我能想到的最好的办法。

怎么样:

SELECT *
FROM final_output AS f 
LEFT JOIN (
     SELECT t.fullname 
     FROM final_output AS t 
     GROUP BY t.fullname 
     HAVING Count(t.fullname)>=6)  AS Ex 
ON f.fullname=Ex.fullname
WHERE Ex.fullname Is Null
到目前为止,将显示少于六个相同名称的任何名称和地址组合

如果添加下一条语句,则每个名称中只显示一个,并随机选择该名称的一个地址

AND Nz([address],"None") In (
     SELECT TOP 1 Nz(address,"None") 
     FROM  final_output t 
     WHERE t.fullname = f.fullname 
     ORDER BY fullname, Nz(address,"None") )

哎呀,短的一个括号。现在就试试。谢谢你的回复。它说“条件表达式中的数据类型不匹配”。好的,我已经用最新版本进行了测试。谢谢,它可以工作,但唯一的问题是,如果有少于6个不同的地址,它们将被保留:harry baker 1 street harry baker 2 street。只有当有6个或更多不同的地址时,它们才会被删除。您的查询将删除任何重复的名称。因此,如果名称的不同地址少于6个,则可能存在重复的名称。不清楚您是否希望显示所有五个名称和地址组合(如果它们可用)。现有查询不起作用,因为在subselect中,您的别名为
NamesToReject
在其SELECT语句中不包含ID字段。