Office中国论坛/Access中国论坛

标题: 在我的这个查询里填加两个新的计算字段,怎么做呢? [打印本页]

作者: jiaqitang    时间: 2021-3-3 10:57
标题: 在我的这个查询里填加两个新的计算字段,怎么做呢?
本帖最后由 jiaqitang 于 2021-3-4 09:45 编辑

我有一个数据库,里边有一个表”DAYS”(共三列,PIN,DAYS,SCORES,表是按SCORES从大到小排列).
我做了一个查询(DaysScores),
有一个字段BENCKMARK(DAYS总和乘上0.35,在这个表里它是1783483.1)

我想再加三个计算字段,1个是从上到下累加DAYS 表里 DAYS 这一列,当总和数大于Benchmark(1783483.1),停止累加. 这时算出一共有多少的PIN
(就是多少个行数,在这个表里,加到第64行时,总值是1810594>1783483.1, 停止累加)共有64PIN,我想把64 这个值作为新字段ROWD, 和总和数1810594作为SUMD字段加到查询里。第三个字段是 MINScore,这个字段就是SCORE列在第 64行对应的值。

怎么做呢?





作者: roych    时间: 2021-3-3 15:13
看看是不是这样。
[attach]63980[/attach]
如果数据不多的话,将就着用吧。
就这个表来说,还是有些问题的。
首先不能说,数据库是按行排列的。比如,你这张表,按默认数据来看,是64行就超过预定值了,如果我按days排下序呢?显然就不是了吧?所以,在这种情况下,应该加上自动编号字段。后面只需要定位到自动编号的位置即可。
其次,这个dsum,属于域聚合函数,数据量少的话,问题不大。当数据量较大时,最好用ADO去更新数据,然后把目标值挑出来即可。
事实上,可以在录入数据时就去更新累计值。比如,建立一个汇总查询。在录入之前先读取这个数据,然后录入完其它数据后,把这个汇总值加上days的结果去更新即可。当然,这都是后面的事情了。
[attach]63981[/attach]

作者: jiaqitang    时间: 2021-3-4 09:46
roych 发表于 2021-3-3 15:13
看看是不是这样。

如果数据不多的话,将就着用吧。

老师说的太深了,不是很懂呀。

顶一下吧。
作者: roych    时间: 2021-3-4 20:01
jiaqitang 发表于 2021-3-4 09:46
老师说的太深了,不是很懂呀。

顶一下吧。

不是很懂就下载附件慢慢看。




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