Advertisement
Guest User

Untitled

a guest
Dec 2nd, 2016
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.63 KB | None | 0 0
  1. CREATE FUNCTION f_GradeToNum (a_Grade varchar(1))
  2. RETURNS INTEGER
  3. BEGIN
  4. CASE a_Grade
  5. WHEN 'A' THEN RETURN 5;
  6. WHEN 'B' THEN RETURN 4;
  7. WHEN 'C' THEN RETURN 3;
  8. WHEN 'D' THEN RETURN 2;
  9. WHEN 'E' THEN RETURN 1;
  10. ELSE RETURN 0;
  11. END;
  12. END;
  13.  
  14. CREATE FUNCTION f_AvgGrade (Id INTEGER)
  15. RETURNS DOUBLE
  16. BEGIN
  17. DECLARE AverageGrade DOUBLE;
  18. SELECT AVG(f_GradeToNum(FinalGrade)) INTO AverageGrade
  19. FROM Registration WHERE PersonId = Id;
  20. RETURN AverageGrade;
  21. END;
  22.  
  23. CREATE VIEW v_top20Students (FirstName, LastName, AverageGrade) AS
  24. SELECT TOP 20 FirstName, LastName, f_AvgGrade(Id) as AverageGrade
  25. FROM Person ORDER BY AverageGrade DESC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement