设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
查看: 1791|回复: 7
打印 上一主题 下一主题

[查询] 数据查询统计问题

[复制链接]
跳转到指定楼层
1#
发表于 2009-3-26 10:49:45 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我这里有这样一个表:
主键是ID,是自动增长的
还有3列:H,T,N,里面的数据是无规则的,但都是0-9的一位数
我想做的功能如下:
比如查找H中所有是0的行,这样每行都对应一个ID,我要做的是能查找去ID+1行,也就是下一行的数据,并进行统计,就是统计0-9各出现多少次,能做到吗?请大家指教

本帖子中包含更多资源

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

x
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 分享淘帖 订阅订阅
2#
发表于 2009-3-26 11:07:08 | 只看该作者
本帖最后由 todaynew 于 2009-3-26 11:29 编辑

分组统计就可以了

SELECT 数据表.H, Count(数据表.H) AS H计数, DCount("T","数据表","T=" & [H]) AS T计数, DCount("N","数据表","N=" & [H]) AS N计数, [H计数]+[T计数]+[N计数] AS 合计
FROM 数据表
GROUP BY 数据表.H;





本帖子中包含更多资源

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

x
3#
发表于 2009-3-26 18:20:51 | 只看该作者
如果是统计两个0之间的数据可以这样写:
SELECT first(ID) AS 起始码, count(*)-1 AS 计数
FROM [SELECT a.ID, a.H, (select count(*) from 数据表 as b where b.H=0 and b.ID<=a.ID) AS 分组
FROM 数据表 AS a]. AS c
WHERE c.分组>0
GROUP BY c.分组;

这个查询也可以看成两个查询:
1、查询1:
SELECT a.ID, a.H, (select count(*) from 数据表 as b where b.H=0 and b.ID<=a.ID) AS 分组
FROM 数据表 AS a
2、查询2:
SELECT first(ID) AS 起始码, count(*)-1 AS 计数
FROM 查询1 AS c
WHERE c.分组>0
GROUP BY c.分组;
4#
 楼主| 发表于 2009-3-27 13:08:26 | 只看该作者
请大家帮帮忙啊,我不懂这个啊
5#
发表于 2009-3-27 14:08:56 | 只看该作者
tadaynew不是写给你了吗?
难道你连把他写的语句复制下来测试都不想做?
6#
 楼主| 发表于 2009-3-27 19:50:29 | 只看该作者
LS,我已经找他私聊过了,我要实现的不是这个功能,你读过我的帖子吗?看过那个代码会产生什么结果吗?不要随便质疑别人
7#
发表于 2009-3-31 10:10:11 | 只看该作者
这个是个简单的查询统计,如果把h列改成文本格式,然后里的内容是是z1,b2混合在一起的,那怎么统计?比如统计包含z1的有几个,b2的有几个怎么来做呀,老师!
8#
发表于 2009-3-31 17:49:50 | 只看该作者
含z1的记录数:select count(*) from 表 where  instr(H,"z1")>0;
或者:dcount(“*”,“表”,“instr(H,'z1')>0”)  
b2的记录数同理。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-3 05:26 , Processed in 0.081391 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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