Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/ms-access/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取包含MS Access中类似条目的字段计数_Sql_Ms Access_Ms Access 2010 - Fatal编程技术网

Sql 获取包含MS Access中类似条目的字段计数

Sql 获取包含MS Access中类似条目的字段计数,sql,ms-access,ms-access-2010,Sql,Ms Access,Ms Access 2010,嘿,我正在尝试解析access数据库中的任何重复项。我希望数据库对access文盲可用,因此我尝试设置可以在不了解程序的情况下运行的查询 我的数据库是在名称字段中的条目偶尔附加特殊字符的情况下设置的。我感兴趣的是根据字段field1和name检查重复条目。我如何将带有特殊字符的条目的计数与其非特殊字符对应项包括在内?这是在单个步骤中实现的,还是需要添加一个先清理数据的步骤 当前我的代码(如下所示)只返回不包含特殊字符的条目的计数 SELECT table.[field1],

嘿,我正在尝试解析access数据库中的任何重复项。我希望数据库对access文盲可用,因此我尝试设置可以在不了解程序的情况下运行的查询

我的数据库是在名称字段中的条目偶尔附加特殊字符的情况下设置的。我感兴趣的是根据字段field1和name检查重复条目。我如何将带有特殊字符的条目的计数与其非特殊字符对应项包括在内?这是在单个步骤中实现的,还是需要添加一个先清理数据的步骤

当前我的代码(如下所示)只返回不包含特殊字符的条目的计数

SELECT 
    table.[field1], 
    table.[Name], 
    Count(table.[Name]) AS [CountOfName]
FROM 
    table
GROUP BY 
    table.[field1], 
    table.[Name]
HAVING 
    (((table.[Name]) Like "*") AND ((Count(table.[Name]))>1));
我曾尝试在Like语句中添加前导空格(如“*”),但结果为零

p.S。我还尝试了Replace语句来替换特殊字符,但没有成功

字段1##
  • 1234567
  • 1234567
  • 4567890
  • 4567890
名字##
  • 布莱恩
  • 布莱恩
  • 特德
  • 特德"
结果
字段1 1234567

名字 布莱恩

姓名
2

分组依据
的工作原理是将行放入值相同的组中。因此,当您按
field1
name
对数据和it组运行查询时,您的意思是“将这些记录放入组中,它们共享一个公共字段1和名称值”。如果您希望
4567890,ted
4567890,ted†
显示在同一组中,因此计数为2,则
字段1和
名称必须相同

如果名称末尾只有一个或两个可能的特殊字符,则可以使用
Replace()
Substring()
删除名称末尾的所有特殊字符,但请记住,还必须
GROUP BY
创建的新表达式;您不能按原始名称字段进行分组,否则将无法获得所需的计数。您还可以创建另一列,该列包含经过净化的名称,该名称的末尾没有任何特殊字符

我没有安装Access,但类似这样的东西应该可以:

SELECT 
    table.[field1], 
    Replace(table.[Name], "†", "") AS Name, 
    Count(table.[Name]) AS [CountOfName]
FROM 
    table
GROUP BY 
    table.[field1], 
    Replace(table.[Name], "†", "")

请出示一些样品数据好吗?顺便说一句,
*
是Access中的通配符项,因此*可以是*或
Paul
任何您想要的
12358
1989年8月17日
http://www.google.co.uk
ted条目的结果不被统计。正如我在最初的帖子中所说的,我以前尝试过替换功能。当删除单个字符时,它似乎有效,但当我尝试处理所有三个字符时(†,——25;,^)则无效。您需要嵌套
replace()。请务必将其放入您的
选择
和您的
分组依据
。再说一次,我只是随意处理SQL,因为我没有可用的Access安装,但这应该可以工作。根据你需要做的替换量,你可能想考虑在另一列中保存一个消毒名称并分组。AHHHHH嵌套是我丢失的,甚至不知道。哇,我只是在兜圈子浪费了很多时间。谢谢你的帮助。@udderlya不客气,很高兴你能解决这个问题。