SOL第十一章上機題1-5

2792 ワード

--            
SELECT SUM(ClassHour)AS     FROM [Subject] GROUP BY GradeId ORDER BY SUM(ClassHour) 
SELECT StudentNo AS   ,AVG(StudentResult) AS       FROM Result GROUP BY StudentNo
SELECT SubjectId AS   ,AVG(StudentResult) AS       FROM Result GROUP BY SubjectId
SELECT StudentNo AS   ,SUM(StudentResult) AS       FROM Result GROUP BY StudentNo ORDER BY SUM(StudentResult) DESC



--         
SELECT GradeId AS   ,COUNT(SubjectId) AS     FROM [Subject] WHERE ClassHour>50 GROUP BY GradeId  
SELECT GradeId AS   ,AVG(DATEDIFF(DD,BornDate,GETDATE())/365) AS      FROM Student  GROUP BY GradeId
SELECT GradeId AS   ,COUNT(StudentNo) AS      FROM Student WHERE [Address] LIKE '  %' GROUP BY GradeId
SELECT StudentNo AS   ,AVG(StudentResult) AS       FROM Result GROUP BY StudentNo HAVING AVG(StudentResult)>60 ORDER BY AVG(StudentResult) DESC
SELECT StudentNo AS   ,AVG(StudentResult) AS       FROM Result WHERE ExamDate='2013-3-22' GROUP BY StudentNo HAVING AVG(StudentResult)>60 
SELECT StudentNo AS   ,COUNT(StudentResult) AS       FROM Result WHERE StudentResult<60 GROUP BY StudentNo 

--         
SELECT S.StudentName AS     , G.GradeName AS     ,S.Phone AS     
FROM Student AS S ,Grade AS G
WHERE S.GradeId=G.GradeId

SELECT G.GradeName AS     , J.SubjectName AS     , J.ClassHour AS   
FROM Subject AS J
INNER JOIN Grade AS G ON J.GradeId=G.GradeId
WHERE G.GradeId=1

SELECT S.StudentName AS     , R.StudentResult AS   , R.ExamDate AS     
FROM Student AS S
INNER JOIN Result AS R ON	S.StudentNo=R.StudentNo
WHERE R.SubjectId=1

SELECT J.SubjectName AS     , R.StudentResult AS   , R.ExamDate AS     
FROM Subject AS J
INNER JOIN Result AS R ON	J.SubjectId=R.SubjectId
WHERE R.StudentNo='S1101007'

SELECT J.SubjectName AS     , R.StudentResult AS   , R.ExamDate AS     
FROM Subject AS J
INNER JOIN Result AS R ON	J.SubjectId=R.SubjectId

--         
SELECT S.StudentNo AS   ,S.StudentName AS     ,J.SubjectName AS     , R.StudentResult AS   
FROM Student AS S
INNER JOIN Result AS R ON (S.StudentNo=R.StudentNo)
INNER JOIN [Subject] AS J ON (R.SubjectId=J.SubjectId)

SELECT S.StudentName AS     , R.StudentResult AS   ,R.ExamDate AS     
FROM Result AS R
INNER JOIN Student AS S ON (S.StudentNo=R.StudentNo)
WHERE SubjectId=2


--         
SELECT J.SubjectName AS     ,R.StudentNo AS   , R.StudentResult AS   
FROM Result AS R
RIGHT OUTER JOIN [Subject] AS J ON R.SubjectId=J.SubjectId

SELECT J.SubjectName AS     ,R.StudentNo AS   , R.StudentResult AS   
FROM Result AS R
RIGHT OUTER JOIN [Subject] AS J ON R.SubjectId=J.SubjectId
WHERE R.StudentResult IS NULL AND R.ExamDate IS NULL


SELECT G.GradeName AS     ,S.StudentNo AS   ,S.StudentName AS     
FROM Student AS S
RIGHT OUTER JOIN Grade AS G ON G.GradeId=S.GradeId