当前位置:首页 » 考试成绩 » sql学生成绩

sql学生成绩

发布时间: 2020-12-28 08:04:50

Ⅰ 求学生表和成绩表的sql语句

select t.name,avg(c.score),max(c.score),min(c.score) from t_score c right join t_student t GROUP BY t.student_id,c.item_id

Ⅱ sql如何统计全部学生的分数

---第个学员的成绩
select 学号,名称, isnull(语文,0) + isnull(数学,0) + isnull(英语,0) 总成绩 from a left join b on a.学号=b.学号

--各科总成绩
select sum(语文),sum(数学),sum(英语) from b
--总成绩

select sum(语文)+sum(数学)+sum(英语) from b

Ⅲ SQL语句,如何求每个学生的成绩与平均成绩的差

不知道抄你具体什么数据库,,,可以用with as语句

;withcteas(select*
from表)

select*,
成绩-(selectavg(成绩)fromtest)as平均成绩
fromctet

Ⅳ SQL查询学生成绩

select a.studentId,a.name,a.sex,c.cid,b.cname,c.score
into TableA
from Student a, Course b, Grade c
where a.studentId=c.studentId and c.cid=b.cid

select a.studentId,a.name,a.sex,
sum(case cname when "语文" then score else 0 end) as 语文,
sum(case cname when "数学" then score else 0 end) as 数学,
sum(case cname when "英语" then score else 0 end) as 英语,
sum(case cname when "哲学内" then score else 0 end) as 哲学,
sum(score)*1.0/4 as "平均成绩容"

Ⅳ 使用SQL SELECT语句查询每个学生的平均成绩,在线等。

你没有告诉学生表和成绩表的关联字段,假设是id。 select 学生.姓名,avg(成绩回.成绩) as 平均成绩 into pinjun.dbf
from 学生答 inner join 成绩 on 学生.id=成绩.id
order by 学生.姓名

Ⅵ 怎么用一条sql语句查出学生表成绩小于60为不及格60-80为良好80-90为优秀

select name,
case when 成绩<60 then 不及格 when 成绩>=60 and 成绩<80 then 良好 when 成绩>=0 and 成绩<90 then 优秀 end as 成绩情况
from 表名

Ⅶ SQL语句求一个学生表的学生成绩的平均成绩

问题:假设有张学生成绩表(tb)如下:
姓名
课程
分数
张三
语文
74
张三
数学
83
张三
物理
93
李四
语文
74
李四
数学
84
李四
物理
94
想变成(得到如下结果):
姓名
语文
数学
物理
----
----
----
----
李四
74
84
94
张三
74
83
93
-------------------
*/

create
table
tb(姓名
varchar(10)
,
课程
varchar(10)
,
分数
int)
insert
into
tb
values('张三'
,
'语文'
,
74)
insert
into
tb
values('张三'
,
'数学'
,
83)
insert
into
tb
values('张三'
,
'物理'
,
93)
insert
into
tb
values('李四'
,
'语文'
,
74)
insert
into
tb
values('李四'
,
'数学'
,
84)
insert
into
tb
values('李四'
,
'物理'
,
94)
go

--sql
server
2000
静态sql,指课程只有语文、数学、物理这三门课程。(以下同)
select
姓名
as
姓名
,
max(case
课程
when
'语文'
then
分数
else
0
end)
语文,
max(case
课程
when
'数学'
then
分数
else
0
end)
数学,
max(case
课程
when
'物理'
then
分数
else
0
end)
物理
from
tb
group
by
姓名

--sql
server
2000
动态sql,指课程不止语文、数学、物理这三门课程。(以下同)
declare
@sql
varchar(8000)
set
@sql
=
'select
姓名
'
select
@sql
=
@sql
+
'
,
max(case
课程
when
'''
+
课程
+
'''
then
分数
else
0
end)
['
+
课程
+
']'
from
(select
distinct
课程
from
tb)
as
a
set
@sql
=
@sql
+
'
from
tb
group
by
姓名'
exec(@sql)

--sql
server
2005
静态sql。
select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
(语文,数学,物理))
b

--sql
server
2005
动态sql。
declare
@sql
varchar(8000)
select
@sql
=
isnull(@sql
+
'],['
,
'')
+
课程
from
tb
group
by
课程
set
@sql
=
'['
+
@sql
+
']'
exec
('select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
('
+
@sql
+
'))
b')

---------------------------------

/*
问题:在上述结果的基础上加平均分,总分,得到如下结果:
姓名
语文
数学
物理
平均分
总分
----
----
----
----
------
----
李四
74
84
94
84.00
252
张三
74
83
93
83.33
250
*/

--sql
server
2000
静态sql。
select
姓名
姓名,
max(case
课程
when
'语文'
then
分数
else
0
end)
语文,
max(case
课程
when
'数学'
then
分数
else
0
end)
数学,
max(case
课程
when
'物理'
then
分数
else
0
end)
物理,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分,
sum(分数)
总分
from
tb
group
by
姓名

--sql
server
2000
动态sql。
declare
@sql
varchar(8000)
set
@sql
=
'select
姓名
'
select
@sql
=
@sql
+
'
,
max(case
课程
when
'''
+
课程
+
'''
then
分数
else
0
end)
['
+
课程
+
']'
from
(select
distinct
课程
from
tb)
as
a
set
@sql
=
@sql
+
'
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名'
exec(@sql)

--sql
server
2005
静态sql。
select
m.*
,
n.平均分
,
n.总分
from
(select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
(语文,数学,物理))
b)
m,
(select
姓名
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名)
n
where
m.姓名
=
n.姓名

--sql
server
2005
动态sql。
declare
@sql
varchar(8000)
select
@sql
=
isnull(@sql
+
','
,
'')
+
课程
from
tb
group
by
课程
exec
('select
m.*
,
n.平均分
,
n.总分
from
(select
*
from
(select
*
from
tb)
a
pivot
(max(分数)
for
课程
in
('
+
@sql
+
'))
b)
m
,
(select
姓名
,
cast(avg(分数*1.0)
as
decimal(18,2))
平均分
,
sum(分数)
总分
from
tb
group
by
姓名)
n
where
m.姓名
=
n.姓名')

drop
table
tb

Ⅷ 查询每个学生的各科成绩sql语句

1、查询每个学生的各科成绩sql语句:

select a.studentid,a.name,a.sex,v1.score as '语文',v2.score as '数学', v3.score as '英语',v4.score

as ‘哲学’, (v1.score+v2.score+v3.score+v4.score)/4 as ‘平均成绩’ from Stuednt a
left join

(select studentid,score from grade where cid=(select cid from course where cname='语文'))as v1

on a.studentid=v1.studentid

left join

(select studentid,score from grade where cid=(select cid from course where cname='数学'))as v2

on a.studentid=v2.studentid

left join

(select studentid,score from grade where cid=(select cid from course where cname='英语'))as v3

on a.studentid=v3.studentid

left join

(select studentid,score from grade where cid=(select cid from course where cname='哲学'))as v4

on a.studentid=v4.studentid

order by a.studentid

2、sql数据库介绍:

(1)SQL是Structured Query Language(结构化查询语言)的缩写。SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言。在使用它时,只需要发出"做什么"的命令,"怎么做"是不用使用者考虑的。

(2)SQL功能强大、简单易学、使用方便,已经成为了数据库操作的基础,并且现在几乎所有的数据库均支持SQL。

(3)SQL数据库的数据体系结构基本上是三级结构,但使用术语与传统关系模型术语不同。

(4)在SQL中,关系模式(模式)称为"基本表"(base table);存储模式(内模式)称为"存储文件"(stored file);子模式(外模式)称为"视图"(view);元组称为"行"(row);属性称为"列"(column)。

Ⅸ Sql语句求学生平均成绩

那就把in语句放在最外面一层。
添加最外面一层
select sno,sname, avg1 from (select scwrj.sno,sname, avg(gra) avg1 from ......) where avg1 in (...)
你的逻辑好像有点。。。
直接专用
select sno,sname, avg(gra) from 表属1,表2 where 表1.sno=表2.sno group by sno,sname
不就可以了。

Ⅹ 如何用sql语句查出学生表成绩小于60为不及格60-80为良好80-90为优秀

select name,case when 成绩<60 then 不及格 when 成绩>=60 and 成绩<80 then 良好 when 成绩>=0 and 成绩<90 then 优秀 end as 成绩情况 ,from 表名。

注意,在输入sql语句的时候,要在英文环境下输入。否则可能会出现代码不识别。

热点内容
武汉大学学生会辅导员寄语 发布: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