VFP题:有学生表Q(学号C(8),姓名 C(6)),班级C(4),语文 I ,外语 I.总分 I,名次 I),I“名次”字段目前无
实际程序计算学生的名次要求;1,首先对表Q利用“总分”字段建立一个降序的结构复合索引标记“总分”2,设置结构复合索引标记“总分”为主控索引3,将记录指针移到逻辑上的首记录...
实际程序计算学生的名次
要求;1,首先对表Q利用“总分”字段建立一个降序的结构复合索引标记“总分”
2,设置结构复合索引标记“总分”为主控索引
3,将记录指针移到逻辑上的首记录
4,采用SCAN循环逐条记录名次
5,总分最高者名次为第一名,总分相同者名次并列
6,名次排完后,使用SOL查询语句浏览排名后的各条记录。 展开
要求;1,首先对表Q利用“总分”字段建立一个降序的结构复合索引标记“总分”
2,设置结构复合索引标记“总分”为主控索引
3,将记录指针移到逻辑上的首记录
4,采用SCAN循环逐条记录名次
5,总分最高者名次为第一名,总分相同者名次并列
6,名次排完后,使用SOL查询语句浏览排名后的各条记录。 展开
3个回答
展开全部
2楼的基本对,有点小问题,如果有了并列第二,第三就应该空,下面接着第四吧,另外第六步要求浏览排名后的记录,2楼的没排序
clear
set talk off
use q
index on 总分 tag 总分 desc
set order to 总分
go top
n=1
a=总分
scan
if a<>总分
n=n+1
replace 名次 with n
else
replace 名次 with n
n=n+1
endif
a=总分
endscan
select * from q order by 名次 desc
use
set talk on
return
clear
set talk off
use q
index on 总分 tag 总分 desc
set order to 总分
go top
n=1
a=总分
scan
if a<>总分
n=n+1
replace 名次 with n
else
replace 名次 with n
n=n+1
endif
a=总分
endscan
select * from q order by 名次 desc
use
set talk on
return
展开全部
Easy:
SELECT 学号, 姓名
FROM 学生表
WHERE 学号 IN (SELECT 学号
FROM 选课表
WHERE 成绩 > 60
GROUP BY 学号
HAVING COUNT(课程号) >= 5)
SELECT 学号, 姓名
FROM 学生表
WHERE 学号 IN (SELECT 学号
FROM 选课表
WHERE 成绩 > 60
GROUP BY 学号
HAVING COUNT(课程号) >= 5)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
clear
set talk off
use q
index on 总分 tag 总分 desc
set order to 总分
go top
n=1
a=总分
scan
if a<>总分
n=n+1
endif
replace 名次 with n
a=总分
endscan
select * from q
use
set talk on
return
set talk off
use q
index on 总分 tag 总分 desc
set order to 总分
go top
n=1
a=总分
scan
if a<>总分
n=n+1
endif
replace 名次 with n
a=总分
endscan
select * from q
use
set talk on
return
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询