SELECT TOP 1000 [StudentNo]
,[LoginPwd]
,[StudentName]
,[Sex]
,[GradeId]
,[Phone]
,[Address]
,[BornDate]
,[Email]
FROM [MySchol].[dbo].[Student]
SELECT GradeId AS 年纪,COUNT(*) AS 人数
FROM dbo.Student
GROUP BY GradeId
SELECT Sex AS 性别,CounT(*)
FROM dbo.Student
GROUP BY Sex
--查询每学期学生的平均年龄
SELECT AVG(DATEDIFF(dd,BornDate,GETDATE())/365) as 年龄
from dbo.Student
--查询北京地区的每学期学生人数
SELECT COUNT(GradeId) as 个数,GradeId
FROM dbo.Student
WHERE Address LIKE '北京%'
GROUP BY GradeId
--查询学生姓名 年级名称 联系电话
SELECT StudentName,StudentNo,Phone
FROM dbo.Student
--查询年级编号为1的年级名称 科目名称及学时
SELECT s.StudentName,c.SubjectName,c.ClassHour
from dbo.Student AS s
INNER JOIN dbo.Subject AS c on(s.GradeId=c.GradeId AND s.GradeId=1)
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [Id]
,[StudentNo]
,[SubjectId]
,[StudentResult]
,[ExamDate]
FROM [MySchol].[dbo].[Result]
--查询参加考试的学生中 平均分及格的学生记录,并成绩降序排列
SELECT avg(StudentResult)
FROM dbo.Result
GROUP BY StudentResult
HAVING avg(StudentResult)>60
ORDER BY StudentResult DESC
--查询考试日期为2013-2-22的课程及格平均分
SELECT avg(StudentResult) ,SubjectId
FROM dbo.Result
where ExamDate='2013-03-22'
GROUP BY SubjectId
HAVING AVG(StudentResult)>60
--查询至少一次考试不及格的学生学号, 不及格次数
SELECT StudentNo, Count(*)as 次数
from dbo.Result
where StudentResult<60
group by StudentNo
--平均分
SELECT AVG(StudentResult)
FROM dbo.Result
--没门课程的平均分
SELECT AVG(StudentResult)AS 平均分,SubjectId AS 课程
from dbo.Result
GROUP BY SubjectId
ORDER BY 平均分 desc
--查询每个学生参加的所有的考试成绩 降序
SELECT SUM(StudentResult) AS 所有考试的和,StudentNo
from dbo.Result
GROUP BY StudentNo
ORDER BY 所有考试的和 desc
--查询参加科目编号为1的考试的学生姓名 分数 考试日期
select s.StudentName,c.StudentResult,c.ExamDate
from dbo.Student AS s
INNER JOIN dbo.Result AS c on(s.StudentNo=c.StudentNo)
where s.GradeId=1
--查询学号为S1101007 的学生参加的考试科目名称 分数 日期
SELECT C.GradeId,S.StudentResult,S.ExamDate,C.SubjectName
FROM dbo.Result as S
INNER JOIN dbo.Subject as C on(s.SubjectId=c.SubjectId)
WHERE [StudentNo]='S1101007'
--查询参加考试的学生学号 所考科目名称 分数 考试日期
SELECT S. [StudentNo],C.[SubjectName],[StudentResult],[ExamDate]
from [dbo].[Result] AS S,[dbo].[Subject] as C
where S.[SubjectId]=C.[SubjectId]
--查询学生学号 姓名 考试科目名称 成绩
SELECT S. [StudentNo],A.[StudentName],C.[SubjectName],[StudentResult]
FROM [dbo].[Result]AS S,[dbo].[Subject] as C,[dbo].[Student] as A
where S.[SubjectId]=C.[SubjectId] AND A.studentNo=S.studentNo
--查询所有科目的参考信息
SELECT J.[SubjectName] AS 科目名称, R.[StudentResult] as 成绩,R.[StudentNo] AS 学号
FROM Result AS R
RIGHT OUTER JOIN Subject AS J
ON J.SubjectId=R.SubjectId
--查询没有被考过的科目信息。
SELECT J.SubjectName AS 科目名称
FROM Result AS R
RIGHT OUTER JOIN Subject AS J
ON J.SubjectId=R.SubjectId
WHERE R.StudentResult IS NULL AND R.StudentNo IS NULL
/****** Script for SelectTopNRows command from SSMS ******/
SELECT TOP 1000 [SubjectId]
,[SubjectName]
,[ClassHour]
,[GradeId]
FROM [MySchol].[dbo].[Subject]
--每个年纪的总学时
SELECT SUM(ClassHour)as 总学时,GradeId
FROM [MySchool].[dbo].[Subject]
GROUP BY GradeId
ORDER BY 总学时
--查询每学期学时超过50的课程数
SELECT COUNT(ClassHour) as 课程数,GradeId AS 学期
FROM dbo.Subject
WHERE ClassHour>50
GROUP BY GradeId