Office中国论坛/Access中国论坛
标题: 这样的查询怎么实现???(在线等待))) [打印本页]
作者: zhaobeaut 时间: 2003-2-15 18:42
标题: 这样的查询怎么实现???(在线等待)))
原始 数据表为:
宿舍 成绩
1102 A
1103 B
1104 B
1105 C
1102 B
1103 B
1104 C
1105 A
1103 C
1104 A
1103 A
成绩栏共分三个档次即ABC,怎样才能利用查询分别计算出各宿舍ABC的的百分率呢,谢谢!!!如果没有的就用0来表示:
宿舍 A B C
1102 23% 77% 0%
1103 0% 40% 60%
.
.
.
请各位高手帮忙!谢谢[em06]
[此贴子已经被作者于2003-2-15 9:52:18编辑过]
[此贴子已经被作者于2003-2-15 10:42:07编辑过]
作者: Roadbeg 时间: 2003-2-15 18:57
使用 聚合函数 Count 如何
作者: zhaobeaut 时间: 2003-2-15 19:04
可是我试过了,不行啊,请高手给做一个例子,谢谢!
作者: Trynew 时间: 2003-2-15 22:08
文件下载
用交叉查询
作者: Roadbeg 时间: 2003-2-15 22:12
这个查询真的写累了,试验这个查询花了我近40分钟,唉......
select distinct test.宿舍,Na / nt ,nb / nt,nc / nt
from (select 宿舍,count(宿舍) as NA from test where 成绩='a' group by 宿舍) as ta right join ((select 宿舍,count(宿舍) as NB from test where 成绩='b' group by 宿舍) as tb right join ((select 宿舍,count(宿舍) as NC from test where 成绩='c' group by 宿舍) as tc right join ((select 宿舍,count(宿舍) as nt from test group by 宿舍) as tt right join test on tt.宿舍=test.宿舍) on tc.宿舍=test.宿舍) on tb.宿舍=test.宿舍 ) on ta.宿舍=test.宿舍
[此贴子已经被作者于2003-2-15 14:12:28编辑过]
作者: jhzlzc29 时间: 2003-2-15 22:13
高呀,一个比一个高,先收藏一下啦
作者: Roadbeg 时间: 2003-2-15 22:19
如果我做这个题目,第一反应就是写代码.
象我在上面写的那个查询,如果数据量大,
执行起来不知要花多久......
我觉得,还是少用点复杂查询的好.
多写点语句,适应性更强,修改功能也方便.
作者: jhzlzc29 时间: 2003-2-15 22:25
可是,像我们这些不会代码的,只能这样呀
作者: eio 时间: 2003-2-15 22:29
查询也是代码
作者: Roadbeg 时间: 2003-2-15 22:45
不好意思,上面还要加上 NZ 函数.没注意看要求显示 百分之零
欢迎光临 Office中国论坛/Access中国论坛 (http://www.office-cn.net/) |
Powered by Discuz! X3.3 |