感谢管理员的回答,学习了!不过我现在要做的是两份统计工作,一份是调查问卷,一份是试题,试题可以使用您建议的方案。
我想设计一个access的模板,可以对今后多次的调查问卷或试题进行自动统计。
比如,调查问卷中,满意度调查,参与调查人员可以评分1、2、3、4、5,同时,题目可以有题目1、题目2、题目3,也可以更多题目,我想按题目进行平均分统计,所以自然题目应该作为access表格的列项。
但问题就来了,题目的个数是不固定的,我写模板的时候可以事先把公式写好 (avg(题目1)+ avg(题目2)+ avg(题目3))/3就可以得到满意度调查的总平均分,但题目个数是变化的,下次可能有10个题目,我岂不是要再把公式调整为(avg(题目1)+...+avg(题目10))/10才行?
我的意思是有没有什么方法,一次就把命令写好,比如最多就只有10个题目,我在表格里录入数值录了几个题目,就能自动计算这几个题目各自的平均分以及总平均分,而不是把所有这十个题目算平均分(因为如果没有后面的题目,如果还是算10个题目的平均分的话会造成分值的低估,因为题目数被高估了)。
不知道我的提问是否表述清楚了?
难道是我太偷懒了,只能每次改命令来适应题目的变化吗?
一看就是老汉考试考多了
,开个玩笑,祝中秋快乐
楼主这个是统计满意度用的,一般思路是这样:设计几个问题,让别人回答评分:如极满意5分,满意4分,一般3分,差2分等等。将每道题的分数加起来,除以回答的人数,就可以得出每题的平均分,最后将每道题的平均分加起来除以总题数就是总平均分了。
表设计:题目ID,调查人ID,得分
设计三个查询:
第一个查询排除数据为空的调查表
SELECT 调查表.题目ID, 调查表.调查人ID, nz([得分]) AS 分数
FROM 调查表
WHERE (((nz([得分]))<>0));
第二个查询:根据第一个查询求平均值
SELECT 查询1.题目ID, Avg(查询1.分数) AS 分数之平均值
FROM 查询1
GROUP BY 查询1.题目ID;
第三个查询:根据第二个查询再求平均值
SELECT Avg(查询2.分数之平均值) AS 总平均分
FROM 查询2;
感谢zch的指导,我按照你的思路开始设计查询,结果到查询2的阶段进行不下去了,因为总是报错,我查询1中明明有大类ID、题目ID等字段,到查询2中总是告诉我“试图执行的查询中不包含作为聚合函数一部分的特定表达式'大类ID' (或题目ID)”,请教一下是什么原因?
大类ID,题目ID也不是什么聚合函数啊。请参考下图,请大虾们点拨迷津!
先行谢过!
自己试验成功!庆祝一下。
总记录:5篇 页次:1/1 9 1 :