Ms access 将记录放入新表中,该表不';t同一名称不能有6个或6个以上的不同地址
如果重复的名称超过6个,并且同一名称有六个不同的地址,那么我不想将它们输出到KeepThese表: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
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字段。