设为首页收藏本站Access中国

Office中国论坛/Access中国论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

返回列表 发新帖
楼主: smokinglog
打印 上一主题 下一主题

[模块/函数] 如何选择满足条件的最近几个数据求和,而不是全部

[复制链接]
21#
发表于 2006-8-12 02:06:00 | 只看该作者
为了不错解题意,请把a,b,c最终的结果贴出来
22#
 楼主| 发表于 2006-8-12 04:23:00 | 只看该作者
以下是引用andymark在2006-8-11 18:06:00的发言:
为了不错解题意,请把a,b,c最终的结果贴出来



a  8/10/11 这三行,对应的数据为11/3/2,结果为11+3+2=16,所有数据都在q列

b 10/13/14这三行,对应的数据为3/0/6,结果为3+0+6=9,数据分别在p列和q列

c 9/11/12这三行,对应的数据为2/2/1,结果为5,数据分别在p列和q列

d  1/9/12这三行,对应的数据为3/5/7,结果为15,数据分别在p列和q列

e  7/13/14这三行,对应的数据为3/5/2,结果为10,数据分别在p列和q列

谢谢andymark

这个问题很复杂,我试了半天也没有头绪
23#
发表于 2006-8-12 07:07:00 | 只看该作者
有2个查询,分别以N和M做条件,测试一下结果有什么不同


[此贴子已经被作者于2006-8-11 23:17:14编辑过]

本帖子中包含更多资源

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

x
24#
发表于 2006-8-12 17:05:00 | 只看该作者
以下是引用smokinglog在2006-8-11 20:23:00的发言:





a  8/10/11 这三行,对应的数据为11/3/2,结果为11+3+2=16,所有数据都在q列

b 10/13/14这三行,对应的数据为3/0/6,结果为3+0+6=9,数据分别在p列和q列

c 9/11/12这三行,对应的数据为2/2/1,结果为5,数据分别在p列和q列

d  1/9/12这三行,对应的数据为3/5/7,结果为15,数据分别在p列和q列

e  7/13/14这三行,对应的数据为3/5/2,结果为10,数据分别在p列和q列

谢谢andymark

这个问题很复杂,我试了半天也没有头绪

看不懂.看了半天也不知道是什么规则.
25#
 楼主| 发表于 2006-8-12 17:27:00 | 只看该作者
以下是引用andymark在2006-8-11 23:07:00的发言:


有2个查询,分别以N和M做条件,测试一下结果有什么不同



两个查询结果是一样的,看起来已经解决问题

现在移植到大规模数据上测试,顺便学习一下代码

非常感谢andymark
26#
 楼主| 发表于 2006-8-12 17:44:00 | 只看该作者
以下是引用sgrshh29在2006-8-12 9:05:00的发言:



看不懂.看了半天也不知道是什么规则.

ID N M Q P
1 a d 3 1
2 a e 2 2
3 b c 1 0
4 c a 0 1
5 a b 1 2
6 b c 2 3
7 a e 3 0
8 b a 11 1
9 c d 5 2
10 b a 3 3
11 c a 2 2
12 d c 1 7
13 b e 5 0
14 e b 6 2



简述问题:在m,n两列中,找出a,b,c~最近3次出现的记录,对a来说,就是8/10/11三行,而对于b,则是10/13/14这三行;对于c,为6/11/12这三行。然后进行加合,且有a在m列,加合p列,若在n列,则加合对应的q列数值。



我的想法是:先筛选出a,b,c~最后出现三次的记录,再根据a在m列或者n列,分别加合p或q



现在情况更加复杂了,请高手继续发挥吧!


和前面的差不多,只不过abc在两列里都有,要找出来对应的数据加和
27#
 楼主| 发表于 2006-8-12 18:08:00 | 只看该作者
以下是引用andymark在2006-8-11 23:07:00的发言:


有2个查询,分别以N和M做条件,测试一下结果有什么不同




数据量大一点(300多条),运行很慢,我试了3次,都没有得出结果,access死机了~

[此贴子已经被作者于2006-8-12 10:17:01编辑过]

28#
发表于 2006-8-12 18:26:00 | 只看该作者
用ADO好做,先按各项定位好所要求的编码,再以编码按需查询
29#
发表于 2006-8-12 18:59:00 | 只看该作者
以下是引用smokinglog在2006-8-12 10:08:00的发言:






数据量大一点(300多条),运行很慢,我试了3次,都没有得出结果,access死机了~





       其实这样的查询最好用ADO写到临时表,把上面的代码改动一下很容易实现,速度快很多
30#
发表于 2006-8-13 01:50:00 | 只看该作者
以下是引用smokinglog在2006-8-12 9:44:00的发言:



ID N M Q P
1 a d 3 1
2 a e 2 2
3 b c 1 0
4 c a 0 1
5 a b 1 2
6 b c 2 3
7 a e 3 0
8 b a 11 1
9 c d 5 2
10 b a 3 3
11 c a 2 2
12 d c 1 7
13 b e 5 0
14 e b 6 2




简述问题:在m,n两列中,找出a,b,c~最近3次出现的记录,对a来说,就是8/10/11三行,而对于b,则是10/13/14这三行;对于c,为6/11/12这三行。然后进行加合,且有a在m列,加合p列,若在n列,则加合对应的q列数值。



我的想法是:先筛选出a,b,c~最后出现三次的记录,再根据a在m列或者n列,分别加合p或q



现在情况更加复杂了,请高手继续发挥吧!


和前面的差不多,只不过abc在两列里都有,要找出来对应的数据加和

还是看不懂,注意你上面写的b在10/13/14这三行,而c在6/11/12这三行.而按我的理解应该是b在10/13/14这三行,而c在9/11/12这三行(而不是你写的6/11/12).如果我的理解是对的话,问题就比较简单,你可以参考我前一个例子做,再增加一个查询就可以了,速度也不慢.
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-9-22 09:51 , Processed in 0.093086 second(s), 32 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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