请教SQL Server 高手

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了请教SQL Server 高手相关的知识,希望对你有一定的参考价值。

一、某班级的测试成绩通过数据库来保存,内部测试数据库名称为TEST,保存内部测试的表为TestInfo,对应的内部测试成绩表为TestScore,表结构和存储的数据如下:
内部测试表:TestInfo
TestID Stage TestName
1 1 Logic Java
2 1 html
3 1 SQL
4 1 C#/WinForms
5 2 SQL Server
6 2 .Net
7 2 javascript
8 2 Java
9 3 .NET
10 3 Java
内部测试成绩表:TestScore
TestID Class StudentName Score
1 S1161 张良宝 80
1 S1161 刘宇 100
2 S1161 张良宝 60
2 S1161 刘宇 60
2 S1161 严琴 80
1 S1162 杨超 40
1 S1162 张立华 100
1 S1162 陈磊 80
1 S1162 张伟 60
2 S1162 杨超 60
2 S1162 张立华 80
2 S1162 陈磊 80
2 S1162 张伟 40
2 S1162 杨飞 100
编写SQL 语句实现以下的要求:
(1)创建数据库TEST 和两个表
(2)使用分组查询,查询出不同阶段(1、2、3)内部测试的次数
(3)查询出S1161 班HTML内部测试的平均成绩;
(4)学员“张立华”姓名写错了,应为“张丽华”,请编写SQL 语句进行更新;
(5)S1162 班学员“杨飞”, Logic Java 内部测试成绩为80 分,录入时遗漏,请编
写SQL 语句插入该记录;
(6)查询出内部测试不及格(少于60 分)的人员所在的班级、姓名、内部测试名称

二、学生成绩信息三个表,结构如下:
学生表:Member
字段名称 数据类型 说明
MID Char(10) 学生号,主键
MName Char(50) 姓名
课程表:
字段名称 数据类型 说明
FID Char(10) 课程,主键
FName Char(50) 课程名
成绩表:Score
字段名称 数据类型 说明
SID int 自动编号,主键,成绩记录号
FID Char(10) 课程号,外键
MID Char(10) 学生号,外键
Score int 成绩
请编写T-SQL 语句来实现如下功能:
(1) 查询各个学生语文、数学、英语、历史课程成绩,例如下表:
姓名 语文 数学 英语 历史
张萨 78 67 89 76
王强 89 67 84 96
李三 70 87 92 56
李四 80 78 97 66
(2)查询四门课中成绩低于70 分的学生及相对应课程名和成绩。
(3)统计各个学生参加考试课程的平均分,且按平均分数由高到底排序。
(4)创建存储过程,分别查询参加1、2、3、4 门考试及没有参加考试的学生名单,要求显
示姓名、学号。
我要答案 速度 只要能通过补考就OK 快的我还加分

--一
--1
create database test

create table TestInfo(TestID int, Stage int, TestName varchar(50))
create table TestScore(TestID int, Class varchar(50), StudentName varchar(20), Score float)

--2
select stage, count(1) 次数 from testinfo group by stage

--3
select class, avg(score) 平均成绩 from testscore where class = 'S1161' group by class

--4
update testscore set studentname = '张丽华' where studentname = '张立华'

--5
insert testscore
values(1, 'S1162', '杨飞', 80)

--6
select a.class 班级, a.studentname 姓名, b.testname 内部测试名称, a.score 成绩 from testscore a
join testinfo b on a.testid = b.testid where a.score < 60

--二
--1
select a.mname 姓名,
max(case when b.fname = '语文' then c.score else 0 end) 语文,
max(case when b.fname = '数学' then c.score else 0 end) 数学,
max(case when b.fname = '英语' then c.score else 0 end) 英语,
max(case when b.fname = '历史' then c.score else 0 end) 历史
from 学生表 a left join 成绩表 c on a.mid = c.mid
join 课程表 b on b.fid = c.fid
group by a.mname

--2
select a.mname 姓名, b.fname 课程, c.score 成绩
from 学生表 a join 成绩表 c on a.mid = c.mid
join 课程表 b on b.fid = c.fid
where c.score < 70

--3
select a.mname 姓名, avg(b.score) 平均分 from 学生表 a join 成绩表 b on a.mid = b.mid
order by 平均分 desc

--4
create procedure usp1 @cishu int
as
select a.mname 姓名, a.mid 学号 from 学生表 a join 成绩表 b on a.mid = b.mid
group by a.mname, a.mid
having count(1) = @cishu
参考技术A 第一题给你做完了.
select f.mname,
f.语文,
f.数学,
f.英语,
f.历史 from
(select MName
,
语文=sum(case when FID='F001' then score end),
数学=sum(case when FID='F002' then score end),
英语=sum(case when FID='F003' then score end),
历史=sum(case when FID='F004' then score end)
from dbo.Member inner join dbo.score on dbo.Member.MID=dbo.score.MID
group by MName
) f
where f.数学 is not null and f.语文 is not null and f.英语 is not null and f.历史 is not null
第二题
select MName
,
语文=sum(case when FID='F001' then score end),
数学=sum(case when FID='F002' then score end),
英语=sum(case when FID='F003' then score end),
历史=sum(case when FID='F004' then score end)
from dbo.Member inner join dbo.score on dbo.Member.MID=dbo.score.MID
where score<70
group by MName
第三题
select 学生姓名=f.mname,
f.语文,
f.数学,
f.英语,
f.历史,
f.平均分
from
(
select MName
,
语文=sum(case when FID='F001' then score end),
数学=sum(case when FID='F002' then score end),
英语=sum(case when FID='F003' then score end),
历史=sum(case when FID='F004' then score end),
平均分=avg(score)
from dbo.Member inner join dbo.score on dbo.Member.MID=dbo.score.MID
group by MName
) f
order by f.平均分 desc
参考技术B 太多了,赶紧联系我. 百度Hi我 随时在 100%能帮你写好本回答被提问者采纳

关于sql server的启动

参考技术A 分类: 电脑/网络 >> 操作系统/系统故障
问题描述:

我刚装上sql server

但是启动服务管理器的时候,就说由于登陆失败而无法启动服务,这是什么问题啊,我原来装过一次,又卸载了,再装了好几个版本都这么说,这是哪出问题了?我最近在做jsp,asp 网页,有高手吗?我想请教一些问题,可以共同探讨吗?

解析:

在启动服务管理器时,发生以下错误:

1由于登陆失败而无法启动服务;

2 SqlServer服务管理器发生错误1069(由于登陆失败而无法启动服务),此时正在MSSQLSERVER服务上执行该服务操作。

我的电脑--控制面板--管理工具--服务--右键 MSSQLSERVER--属性--登陆--登陆身份--选择"此帐户"--选择"administrator"用户,在密码和确认密码中输入administrator密码.

我的电脑--控制面板--管理工具--服务--右键 SQLSERVERAGENT--属性--登陆--登陆身份--选择"此帐户"--选择"administrator"用户,在密码和确认密码中输入administrator密码.

以上是关于请教SQL Server 高手的主要内容,如果未能解决你的问题,请参考以下文章

请教各位高手,我现在有一个sqlserver数据库A,有字段月份a(1到12月)、b (内容为编号,会有重复的)

请教高手 win2000server 双网卡 服务器调试方法

MSSQL 高手请进,有问题请教!!

请教SQL高手,事因:今天看教程假设网友单机用上SQL。出现了问题!

请教高手Windows Server2008 上的IIS7.5如何配置?

SQL问题,请教高手