第三本十一章上機題

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
  

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章