设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

12下一页
返回列表 发新帖
查看: 2126|回复: 10
打印 上一主题 下一主题

[Access本身] 这种字符串怎么统计啊?(已解决,感谢版主)

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-31 15:16:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 ghfmac 于 2009-4-1 08:48 编辑

附件中的表,代码字段请看例子,我想统计下每行里含有Z1的有几条记录,含有Z2的几条,这种统计怎么弄啊?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-3-31 15:30:48 | 只看该作者
  1. SELECT Sum(IIf(InStr([代码],"Z1")>0,1,0)) AS 含有Z1记录数, Sum(IIf(InStr([代码],"Z2")>0,1,0)) AS 含有Z2记录数
  2. FROM 表1
复制代码
3#
 楼主| 发表于 2009-4-1 08:47:44 | 只看该作者
本帖最后由 ghfmac 于 2009-4-1 09:03 编辑

谢谢版主,问题解决!但是在运行中发现个新问题,如果“z1”项统计时,会把“z11”也统计进去,这是为什么,不需要加模糊查询啊?
4#
发表于 2009-4-1 09:49:56 | 只看该作者
那么改成这样就可以了,不管是否有zz1还是z11等情况
  1. SELECT Sum(IIf(InStr("," & [代码] & ",",",Z1,")>0,1,0)) AS 含有Z1记录数, Sum(IIf(InStr("," & [代码] & ",",",Z2,")>0,1,0)) AS 含有Z2记录数
  2. FROM 表1
复制代码
5#
 楼主| 发表于 2009-4-1 11:14:47 | 只看该作者
本帖最后由 ghfmac 于 2009-4-1 11:34 编辑

非常感觉版主的热心!问题彻底解决。 如果能有点注解就好不!
6#
发表于 2009-4-1 16:21:55 | 只看该作者
那么只能将问题回答到底了,先简单解释一下

在[代码]字段前后各加上一个逗号
"," & [代码] & ","   

在[代码]字段前后各加上一个逗号后,用instr()函数判断是否含有,z1,
InStr( "," & [代码] & "," ,  ",Z1," )

如果InStr()>0,就是含有,则IIf(InStr()>0,1,0)=1,否则等于0
IIf( InStr("," & [代码] & ",",",Z1,")>0  , 1 ,  0)   

含有就是1,不含有就是0,用sum()求和就是需要的结果
sum( IIf(InStr("," & [代码] & ",",",Z1,")>0,1,0) )
7#
发表于 2009-4-1 16:31:03 | 只看该作者
本帖最后由 rjacky 于 2009-4-1 16:38 编辑

具体思路:

对于计算机来说,zz11也包含了z1,所以也算作一条记录,所以关键问题是要区分z1和zz11。

1、在[代码]字段中,Z1的位置有4种
在开头 z1,……
在中间 ……,z1,……
在结尾 ……z1
单一个 z1

2、同样在[代码]字段中,诸如z11或zz1的位置也有4种
在开头 zz11,……
在中间 ……,zz11,……
在结尾 ……zz11
单一个 zz11

3、1和2两者的区别是: 真正的z1前面要么是空,要么是逗号,后面要么是空,要么就是逗号,共四种情况,在查询中来处理比较复杂,即使用vba编程也得用两个if来描述

4、要一步就能找出真正的z1,就得切换角度将问题转换一下,所以无论在[代码]字段中z1的位置如何,如果在字段前后都加上逗号
在开头 ,z1,……,
在中间 ,……,z1,……,
在结尾 ,……z1,
单一个 ,z1,

5、这样 2和4的区别就非常明显了 ,z1,zz11 是两个完全不同的字符串,一步就能准确区分开来,所以问题从"是否含有z1"变成"是否含有,z1, "
8#
发表于 2009-4-1 16:39:46 | 只看该作者
学习了。
9#
 楼主| 发表于 2009-4-3 10:05:19 | 只看该作者
相当感谢rjacky 的讲解,菜菜们有福了!
10#
发表于 2009-4-3 10:14:06 | 只看该作者
看不懂,努力学
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|站长邮箱|小黑屋|手机版|Office中国/Access中国 ( 粤ICP备10043721号-1 )  

GMT+8, 2024-11-6 09:33 , Processed in 0.102659 second(s), 34 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表