我需要比较表用户和表帐户。
两者都有相同的用户代码(文本字段),但它们之间没有关系。
用户代码(必须是11个字符文本)来自:
表帐户是“完美的”(我的意思是正确的)
用户大部分时间都松了一些所需的11个字符
我需要在用户代码中搜索用户代码以寻找与用户类似的内容(最小9或10个字符,无论是从开头还是从中间开始)。 我只需要不匹配的内容,而不是匹配内容。
输出必须是:
我可以在访问或excel中做到这一点,决定你什么更好!
用户示例
iduser usercode_user
1 1a2b3c4d5
2 123456789a
帐户示例
idaccount usercode_accounts
55 1a2b3c4d5e6
87 a123456789a
结果示例
iduser idaccount usercode_user usercode_accounts
1 55 1a2b3c4d5 1a2b3c4d5e6
2 87 123456789a a123456789a
答案 0 :(得分:1)
SELECT u.iduser, a.idaccount, u.usercode_user, a.usercode_accounts
FROM users AS u, accounts AS a
WHERE (((a.usercode_accounts) Like "*" & [u].[usercode_user] & "*"));
如果您的表包含数千行,那么查询可能会非常缓慢。但它确实会使用您提供的样本数据生成所需的输出。
如果您使用ADO运行查询,请使用ANSI通配符%而不是*。
或者您可以像这样使用ALike比较,查询将与ADO或DAO一起使用。
WHERE (((a.usercode_accounts) ALike "%" & [u].[usercode_user] & "%"))
修改:您的示例数据未在用户和帐户中包含任何相同的用户代码。但要排除完全匹配,请使用:
SELECT u.iduser, a.idaccount, u.usercode_user, a.usercode_accounts
FROM users AS u, accounts AS a
WHERE
(((a.usercode_accounts)<>[u].[usercode_user]
And (a.usercode_accounts) ALike "%" & [u].[usercode_user] & "%"));