当前位置:首页 » 成绩查询 » 查询成绩为90分以上的学生的学号

查询成绩为90分以上的学生的学号

发布时间: 2021-03-01 07:22:21

❶ ACCESS查找第一学期有两门以上课程超过90分的学生学号

select 学号 from (SELECT 学号 from 成绩表 where 成绩 > 90 and 修读学期 =1) group by 学号 having count(*)>=2 ;
说明:不知道你修读学期字回段是文本还是数字类答型?我上面是假定数字类型。
SELECT 学号 from 成绩表 where 成绩 > 90 and 修读学期 =1 这一句会查询出第1学期成绩超过90分的所有学号,有几次超过90分“学号”就会出现几次(理解这一点很重要)。
select 学号 from (……)group by 学号 having count(*)>=2; 这句以“学号”为分组,使用条件having count(*)>=2 使“学号”出现2次以上的输出到结果集中,达到你的要求。

❷ SQL语句查询查看90分以上学生的成绩.课程名称.学生姓名怎么写

select 成绩,课程名称,姓名 from 成绩,学生基本信息,课程名称 where学生基本信息.学号=成绩.学号 and 成绩.课程编号=课程名称.课程编号 and 成绩>90

❸ 1. 在xsgl数据库中创建一个存储过程Proc1,查询成绩在90分以上的学生的学号

/*创建存储过程*/
CREATE PROCEDURE proc_select--建立存储过程
@Sno char(10) output,--输入输出参数
@Sname varchar(20) out,--输出参数
@Cno char(4) out,--输出参数
@grade tinyint out--输出参数
AS
SELECT @Sname=Sname,@Sno=Student.Sno,@Cno=cno,@grade=grade --select里面写输出参数
FROM Student,SC --从学生表,选修表中查询
where @Sno=Student.Sno--where里面写输入参数
/*根据给定学号查询*/
CREATE PROC proc_lab4 --存储过程中含有游标
@Sno char(10)
as
declare @ssno char(10),@ssname char(20),@ccname char(20),@scg int--声明四个变量
declare cursor_s cursor--声明游标
for
select Student.Sno,Sname,Cname,grade
from Student,Course,SC--从三个表中选择学号、姓名、课程名、成绩
where Student.Sno=SC.Sno and Course.Cno=SC.Cno and Sname=@Sname;--连接
open cursor_s--打开游标
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
while @@fetch_status=0
begin
print @ssno+@ssname+@ccname+convert(char(10),@scg)
fetch next from cursor_s into @ssno,@ssname,@ccname,@scg
end
close cursor_s--关闭游标
deallocate cursor_s--释放游标
exec proc_lab4 '201215121'
--只带输入参数
CREATE PROC p2
@sno char(10)
as
select Student.Sno,Sname,Cname,grade
from Student,SC,Course
where Student.Sno=SC.Sno and SC.Cno=Course.Cno
and Sname=@sname

❹ C语言~输入5个学生的学号,成绩,按成绩排序(升序),查找90分以上的

代码:

#include<stdio.h>

struct student

{

int num,score[3],age;

char name[20];

float aver;

}stu[1000];

main()

{

int i,j,n;

struct student temp;

/*注意:变量temp的类型与数组stu的元素类型为相同结构体的时候,才可交换两个结构体数组元素,所以此处需要定义temp的类型*/

printf("请输入学生人数: ");

scanf("%d",&n);

printf("请按顺序输入名字、学号、年龄、分数: ");

for(i=0;i<n;i++)

{

scanf("%s",&stu<i>.name);

scanf("%d",&stu<i>.num);

scanf("%d",&stu<i>.age);

for(j=0;j<3;j++)

scanf("%d",&stu<i>.score[j]);

}

for(i=0;i<n;i++)

{int sum=0;

for(j=0;j<3;j++)

sum+=stu<i>.score[j];

stu<i>.aver=sum/3.0;

}

for(i=0;i<n-1;i++)/*利用冒泡排序法按平均分高低排序*/

{for(j=0;j<n-i-1;j++)

{

if(stu[j].aver>stu[j+1].aver)

{temp=stu[j];/*此处交换的应当是数组元素,而不是平均分*/

stu[j]=stu[j+1];

stu[j+1]=temp;

}

}

}

printf("学生信息如下(姓名、学号、年龄、成绩、平均分): ");

for(i=0;i<n;i++)

{

printf("%s%d%d",stu<i>.name,stu<i>.num,stu<i>.age);

for(j=0;j<3;j++)

printf("%d",stu<i>.score[j]);

printf("%.2f ",stu<i>.aver);

}

}

(4)查询成绩为90分以上的学生的学号扩展阅读:

头文件#include<stdio.h>中

stdio.h是stand input&output的缩写,意思是标准输入输出头文件。凡是用到标准输入输出函数,就要调用该头文件。

查看stdio.h目录下包含哪些函数:主要有文件访问、二进制输入/输出、格式化和非格式化输入/输出、文件定位、错误处理、文件操作等。

具体打开自己的VS安装目录,找到include文件夹,打开include夹下面的stdio.h文件即可查看

(C:Program Files(x86)Microsoft Visual Studio 14.-1.1.10include)

常用标准输入输出函数:

scanf()从屏幕格式输入

printf()格式输出到屏幕

getchar()从屏幕得到一个字符

putchar()字符输出到屏幕

gets()从屏幕得到一个字符串

puts()字符串输出到屏幕

fscanf()从磁盘格式输入

fprintf()格式输出到磁盘

fgetc()从磁盘得到一个字符

fputc()字符输出到磁盘

fgets()从磁盘得到一个字符串

fputs()字符串输出到磁盘

#号是预处理语句,表明在编译之前预先进行处理。

.h是header file的缩写,表面这是一个头文件。

include是文件包含命令,后面跟着引号""或者尖括号<>,意思是将引号或尖括号内指定的文件包含到本程序中,成为本程序的一部分,而包含的文件通常是由系统提供的。

❺ excel表格中已知学号,姓名,成绩,求90分以上的学生姓名和学号的函数怎么写

^假设你的数据区在A2:C100
则在D2输入
=index(A:A,small(if($C$2:$C$100>=90,row($2:$100),4^8),row(A1)))&""
数组公式,Ctrl+Shift+回车输入
向右向下填充公式

❻ 求选修课程号位C1且成绩在90分以上的学生学号,姓名和成绩。

select sc.Cnum,sc.name 课程名称,s.num 学号,s.name 姓名,sc.Score
from 学生表 s
left join 课程表 sc on sc.Snum = s.Snum
where sc.Cnum = 'C1' and sc.Score > '90';
兄弟,由于你只是给我看了你写的语句,我不知内道你的表结构,以及字容段信息,所以有些地方我已经用别名帮你取出来了,你自己修改一下。
你的语句问题不大,犯了一点错,就是90分以上了,题目都很明确了,那么就不是=号了,而是大于号,至于说其它的你说没数据,你先select * from一下,看看有没有数据,如果真没有,你可以留下qq,我帮你看看,反正今天周末不上班,我可以抽空帮你看看具体问题。
有问题在留言吧。

❼ 用SQL查询平均成绩高于90分的同学的学号、姓名及其平均成绩,并按成绩由高到低排序

select 学号,姓名,avg(成绩) as '平均成绩' from 学生成绩表 HAVING avg(成绩) > 90 order by avg(成绩) desc

❽ 求“建立查询,查找选修“保险学”且成绩在90分以上的所有学生的学号、姓名、成绩”的SQL语言

现在我们从后面的子查询向前分解:

1.所有未选过的课程的数据集:
select * from 课程 where not exists(
select * from 选读 where 课程号=课程.课程号)

2.所有没被某位学号为 @学号 的学生选过的课程的记录集(@学号学生的未选课程):
select * from 课程 where not exists(
select * from 选读 where 学号=@学号 and 课程号=课程.课程号)
请注意,多出了学号的筛选即,学号=@学号。

3.遍历每一个主查询的学号,每一个学号都按第二筛选方法筛选出:没有未选课程的学生的学号。(不包括在第查询方法查询出的“有未学课程的学号的记录集”中的记录。)
请注意:用主查询中的 学生.学号 代替了@学号。
select 学生.姓名 from 学生
where not exists(
select * from 课程 where not exists(
select * from 选读 where 学号=学生.学号 and 课程号=课程.课程号))

这已经是整个查询语句,可以看出子查询中用学生.学号替换了第2步中的 @学号,(没忘了吧,第二步求的是没有选修全部课程的某个学生)。

用上面的讲解方法不知道是不是更好理解一点。

===============

针对您最后的补充:

为什么不用
from 学生,课程,选读?

答:因为from 学生,课程,选读 也就是
SELECT * FROM 学生,课程,选读 WHERE .....条件
这样的型式只能组成内联接,而内联接我们只知道,只有三个表按联接条件都符合才会被选中,而我们要的是有不符合后面两表的的学生才符合条件,所以用内联接是不可行的。

要不然where句怎么可以调用三个关系的属性呢?

答:在SQL SERVER中规定:所有子表都是可以通过表名调用其上面任意层次的表中的字段的。所以,不是只有内联接才可以调用多个表的属性。

❾ 列出各门课平均成绩90分以上的学生姓名及学号 有计算机SQL语句

select sname,student.sno
from student join sc on student.sno=sc.sno
group by sname,student.sno
having avg(score)>90

热点内容
武汉大学学生会辅导员寄语 发布:2021-03-16 21:44:16 浏览:612
七年级学生作文辅导学案 发布:2021-03-16 21:42:09 浏览:1
不屑弟高考成绩 发布:2021-03-16 21:40:59 浏览:754
大学毕业证会有成绩单 发布:2021-03-16 21:40:07 浏览:756
2017信阳学院辅导员招聘名单 发布:2021-03-16 21:40:02 浏览:800
查询重庆2018中考成绩查询 发布:2021-03-16 21:39:58 浏览:21
结业考试成绩怎么查询 发布:2021-03-16 21:28:40 浏览:679
14中医医师资格笔试考试成绩查分 发布:2021-03-16 21:28:39 浏览:655
名著赏析课程标准 发布:2021-03-16 21:27:57 浏览:881
北京大学商业领袖高端培训课程 发布:2021-03-16 21:27:41 浏览:919