Office中国论坛/Access中国论坛

标题: 数据查询统计问题 [打印本页]

作者: wenjie    时间: 2009-3-26 10:49
标题: 数据查询统计问题
我这里有这样一个表:
主键是ID,是自动增长的
还有3列:H,T,N,里面的数据是无规则的,但都是0-9的一位数
我想做的功能如下:
比如查找H中所有是0的行,这样每行都对应一个ID,我要做的是能查找去ID+1行,也就是下一行的数据,并进行统计,就是统计0-9各出现多少次,能做到吗?请大家指教
[attach]36922[/attach]
作者: todaynew    时间: 2009-3-26 11:07
本帖最后由 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;



[attach]36923[/attach]

[attach]36924[/attach]
作者: todaynew    时间: 2009-3-26 18:20
如果是统计两个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.分组;
作者: wenjie    时间: 2009-3-27 13:08
请大家帮帮忙啊,我不懂这个啊
作者: wuheng    时间: 2009-3-27 14:08
tadaynew不是写给你了吗?
难道你连把他写的语句复制下来测试都不想做?
作者: wenjie    时间: 2009-3-27 19:50
LS,我已经找他私聊过了,我要实现的不是这个功能,你读过我的帖子吗?看过那个代码会产生什么结果吗?不要随便质疑别人
作者: ghfmac    时间: 2009-3-31 10:10
这个是个简单的查询统计,如果把h列改成文本格式,然后里的内容是是z1,b2混合在一起的,那怎么统计?比如统计包含z1的有几个,b2的有几个怎么来做呀,老师!
作者: todaynew    时间: 2009-3-31 17:49
含z1的记录数:select count(*) from 表 where  instr(H,"z1")>0;
或者:dcount(“*”,“表”,“instr(H,'z1')>0”)  
b2的记录数同理。




欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) Powered by Discuz! X3.3