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