大家来看一下,这样的数据窗口怎么实现最方便
要求数据窗口显示如下:
| 语文 | 数学 |
姓名 |分数|排名|分数|排名|
小刚 | 75 | 3 | 77 | 4 |
小明 | 85 | 2 | 96 | 2 |
小强 | 94 | 1 | 90 | 3 |
小王 | 60 | 4 | 99 | 1 |
数据库中存储数据为
姓名 科目 分数
小刚 语文 75
小刚 数学 77
小强 语文 94
小明 语文 85
......
用数据窗口的交叉表可以直接实现分数,如果用SQL语句查询排名我知道怎么实现,用数据窗口的计算列可以实现排名吗?诚心求教
问题点数:70、回复次数:9Top
1 楼zym_xf2003117()回复于 2006-12-03 23:19:41 得分 0
应该可以实现吧,你写个排序的函数,输入参数是数据窗口名称和列名,返回值是计算得到的排序数,然后在数据窗口排名那一列的FORMAT属性里面调用前面的函数Top
2 楼liubocy(天道酬勤)回复于 2006-12-03 23:30:43 得分 0
可行,把数据窗口的SQL改为:
select 姓名,
科目,
分数,
排行
from 表
在交叉报表数据窗口的画板窗口下,Design --> crosstab 打开 crosstab 设置窗口
把排行字段拖到Values下即可。Top
3 楼jdsnhan(柳荫凉)回复于 2006-12-04 08:24:53 得分 20
你用的是什么数据库啊。可以借助数据库本身来完成你的要求。
比如,在oracle下,利用order by 和 rownum,先生成排行列,然后在数据窗口中直接填加进去就可以了。Top
4 楼pcwe2002()回复于 2006-12-04 09:23:48 得分 0
谢谢各位回答,数据库中用SQL语句实现我知道怎么写。
我想知道如果不用SQL排序,只用计算列应该怎么实现,类似count(分数>75)+1这样的语句,如果这个写在汇总里面可以计算75分的排名,可是明细区里面应该怎么写呢,请指教Top
5 楼jackiecheng001(想飞,可是没有翅膀)回复于 2006-12-04 09:38:56 得分 0
计算列
sum(if(分数>75,1,0))Top
6 楼pcwe2002()回复于 2006-12-06 19:32:54 得分 0
有没有人知道呀。准备结贴了Top
7 楼yangjianw2004(阿伟)回复于 2006-12-06 19:38:02 得分 5
顶!~!~Top
8 楼youqiong(牙齿冻的咯咯的响,肚子饿得咕咕的叫...)回复于 2006-12-06 20:10:19 得分 5
设置 计算列
程序里面赋值,应该可以实现;不知道是不是实现了楼主的意思Top
9 楼AFIC(A Fool In China)回复于 2006-12-07 09:22:04 得分 40
类似count(分数>75)+1这样的语句
用pb不容易实现,用sql好了,
没有万能的工具,需要你扬长避短,搭配使用。Top




