名次排列的问题(200分)

  • 主题发起人 主题发起人 ljbXS
  • 开始时间 开始时间
L

ljbXS

Unregistered / Unconfirmed
GUEST, unregistred user!
数据库是ACCESS,用query,数据库字段如下:
姓名 课程 成绩 学分 总成绩 名次
数据库内容有:
一个人有好几门课,又有好多人,现在要在这个表中找出任何一个人(只要一个人),
姓名,课程,成绩,学分,总成绩 和这个人在每一门课中的名次.
比如:
姓名 课程 成绩 学分 总成绩 名次
王五 计 10 10 100
王五 数学 15 2 30
王五 语文 20 4 80
张三 计 25 3 75
张三 数学 20 3 60
张三 语文 15 2 30
找出王五的记录:
姓名 课程 成绩 学分 总成绩 名次
王五 计 10 10 100 1
王五 数学 15 2 30 2
王五 语文 20 4 80 1
请各位帮助!!![:D][:D][:D]
 
为什么没人回答我,我好急!!!!
 
不要急!等一下,我看看
 
在Access中做几个View,按各门功课分类,每门一个
然后在query这几个View联查
 
View是什么?能说的详细一点,!!!!
 
View是视图,ACCESS没用过,帮不上忙!
 
就是在access中做的查询,可以通过query对
accessmk的查询使用sql语句。
 
客位能说的详细一点好吗?,!!!!
 
看一下access的帮助先。
 
select a.*, count(*)+1 as 名次
from
表 as a , 表 as b,
where
(a.name='sdfsd' ) and (a.科目=b.科目) and (a.得分<=b.得分)
group by
a.科目
 
可能不对
身边没环境

总之
查找 同 科目 的分数 比 自己 高的 数量 +1


 
sqlserver 2000 调试通过,Access就不知道了
select 课程,成绩,IDENTITY(int) As 名次 Into 数学名次表
from 表 where 课程=数学 order by 成绩 DESC



 
lsys,这样只有一门数学其它的怎么办?
 
select 姓名,课程,成绩,IDENTITY(int) As 序号,成绩 as 名次 Into 名次表
from 表 order by 课程,成绩 DESC

update 名次表
set 名次=A.序号-B开始序号+1
From 名次表 a,(select 课程,成绩,min(序号) as 开始序号 from 名次表 Group by 课程) b
where a.课程=b.课程

 
在access中不能运行
 
实在不行的话先想别的办法,比如先按科目作view, 在中文Office中叫什么,我也
不 知道,“视图”?“查询”?
这样 当数据库内容变化时,里面的内容也将跟着自动变化。
然后你在VBA中作个Modal,用编程的方法从每个view中取得名次,(这可能是最麻烦的)
我一时每好的办法取得,只好用笨办法了,不过一个班学生不会太多,因此程序作也不该
特别慢
 
想了一个晚上,这样行不行啊
先按科目生成相应的view,比如数学,我们是这样的(名字是view1)
SELECT name, class, score
FROM 表1
WHERE class='数';
只是举例子,具体字段自己写啊
然后对数学成绩排名,这个query这样写

SELECT view1.name, view1.class, view1.score,
(SELECT Count(*)+1 FROM 表1
WHERE 表1.score>view1.score
AND (表1.class)=view1.class) AS trueturn
FROM view1
WHERE (((view1.name)='王')); 等于什么名字自己写或者你写个变量在这里
运行时将弹出输入框要求你输入

应该可以满足了,好了分全给我,别分给人家了

 
jrq
光关注有啥用,这种子查询,会令你终生受用,试试吧
 
做几个View
 
后退
顶部