Office中国论坛/Access中国论坛

标题: 查询一年内总数超三次的记录 [打印本页]

作者: andrewzeng    时间: 2007-8-4 10:00
标题: 查询一年内总数超三次的记录
如图所示[attach]25616[/attach][attach]25617[/attach]
作者: fannky    时间: 2007-8-4 10:23
标题: 回复例子
回复例子^^^^^^^^^^^^^^^^^^^^
作者: t小宝    时间: 2007-8-4 10:23
标题: 按年和代码分组查询
如下:
SELECT First(表1.工号) AS 工号, First(表1.日期) AS 一年开始的日期, 表1.失误代码, Count(表1.失误代码) AS 失误的总数
FROM 表1
GROUP BY 表1.失误代码, Year([日期])
HAVING (((Count(表1.失误代码))>2));
作者: andrewzeng    时间: 2007-8-4 10:37
两位的思路也不错了,但是如果用year()函数似乎不行,因为这样只能以年来组合,跟我的原意不符,不知还有没有其他方法?
作者: t小宝    时间: 2007-8-4 10:44
原来那个'一年'不是某一年,而是一年的时间,看来要用到VBA才能解决
作者: andrewzeng    时间: 2007-8-4 10:50
呵呵呵,用VBA也可以啊,但怎么做呢?我原本想的是用SQL会更容易些哈
作者: fannky    时间: 2007-8-4 11:07
要指定年份阿,那就把查询改一下,用下面的,可以不用VBA,视个人喜好而定

SELECT DISTINCTROW 表1.工号, Format$([日期],'yyyy') AS 年份, 表1.失误代码, Count(表1.失误代码) AS 失误代码之计数
FROM 表1
WHERE ((([年份]) Like "????"))
GROUP BY 表1.工号, Format$([日期],'yyyy'), 表1.失误代码
HAVING (((Format$([日期],'yyyy'))=[年份]) AND ((Count(表1.失误代码))>2));

[ 本帖最后由 fannky 于 2007-8-4 11:16 编辑 ]
作者: andrewzeng    时间: 2007-8-4 11:27
fannky 太热心了,谢谢。也不是指定年份了。如我的例子中2001-2-11到2002-2-11或者从2002-7-1到2003-7-1中这两年(实际中肯定不止这两年了)有条件的筛选哈
作者: fannky    时间: 2007-8-4 11:36
原帖由 andrewzeng 于 2007-8-4 11:27 发表
fannky 太热心了,谢谢。也不是指定年份了。如我的例子中2001-2-11到2002-2-11或者从2002-7-1到2003-7-1中这两年(实际中肯定不止这两年了)有条件的筛选哈

VBA
Over
作者: andrewzeng    时间: 2007-8-4 22:33
那如果用VBA又怎么编呢
over
作者: happystar    时间: 2007-8-5 12:50
DateAdd(Now(),-365,"d")
可以吗?
over
作者: andrewzeng    时间: 2007-8-6 22:48
[attach]25654[/attach]
已经做出来了,大家看看哈




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