Advertisement
Guest User

Untitled

a guest
Jan 20th, 2019
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.38 KB | None | 0 0
  1. /* Yan Hwee
  2. -- Find Team with most Poke Points 2 years ago
  3. SELECT Team.TeamID, Team.TeamName AS "Team Name", SUM(Owns.NumCaught * Pokemon.PokePoints) AS "Total PokePoints"
  4. FROM Team
  5. INNER JOIN Owns ON Owns.TeamID = Team.TeamID
  6. INNER JOIN Pokemon ON Pokemon.PokemonID = Owns.PokemonID
  7. WHERE Team.EventID IN (SELECT EventID FROM Event WHERE YEAR(EventYear) = DATEPART(YEAR, GETDATE()) - 2)
  8. GROUP BY Team.TeamID, Team.TeamName
  9. ORDER BY SUM(Owns.NumCaught * Pokemon.PokePoints) DESC
  10.  
  11. -- Find Pokemon that is being caught the most
  12. SELECT Pokemon.PokemonID, Pokemon.PokemonName AS "PokemonName", SUM(Owns.NumCaught) AS "Total Caught"
  13. FROM Pokemon
  14. INNER JOIN Owns ON Owns.PokemonID = Pokemon.PokemonID
  15. GROUP BY Pokemon.PokemonID, Pokemon.PokemonName
  16. ORDER BY SUM(Owns.NumCaught) DESC
  17.  
  18. -- Find Member with most Award
  19. SELECT m.MemberID, m.Name AS "Member Name", COUNT(*) AS "Total Awards"
  20. FROM Member m
  21. INNER JOIN Award ON Award.AwardID IN (SELECT AwardID FROM Participation WHERE MemberID = m.MemberID)
  22. GROUP BY m.MemberID, m.Name
  23. ORDER BY COUNT(*) DESC
  24. */
  25.  
  26. /* Jeffrey
  27. -- List the Team Names and the Year of past year team champions
  28. SELECT T.TeamName, YEAR(E.EventYear) AS "Year"
  29. FROM Team T INNER JOIN Event E
  30. ON T.EventID = E.EventID
  31. WHERE AwardID IN(
  32. SELECT AwardID
  33. FROM Award
  34. WHERE AwardName = 'Top Team')
  35.  
  36. -- Find members whose expenses are more than $500 in a single billing period
  37. SELECT Name, MemberID, Email, Address
  38. FROM Member
  39. WHERE MemberID IN(
  40. SELECT M.PrincipalID
  41. FROM MemberTrans M INNER JOIN Bill B
  42. ON M.BillRef = B.BillRef
  43. WHERE B.TotalAmtDue > 500);
  44.  
  45. -- List the Member ID of the Principal Members who sponsors 2 or more members
  46. SELECT SponsorID, COUNT(MemberID) AS "Number of Members being sponsored"
  47. FROM Member
  48. WHERE SponsorID IS NOT NULL
  49. GROUP BY SponsorID
  50. HAVING COUNT(MemberID) >= 2;
  51. */
  52. /* Joel
  53. -- List down the names of all members in ascending order and their membership tier
  54. SELECT Name, t.TierDesc
  55. FROM Member m
  56. INNER JOIN MemberTier t
  57. ON t.MemberTierID = m.MemberTierID
  58. ORDER BY Name ASC
  59.  
  60. -- List down members who caught the most pokemon from the highest to lowest
  61. SELECT m.MemberID, Name, NumCaught
  62. FROM Member m
  63. INNER JOIN Owns o
  64. ON m.MemberID = o.MemberID
  65. ORDER BY NumCaught DESC
  66.  
  67.  
  68. -- List down all teams that participated in the 2017 MokeChase
  69. SELECT TeamID, TeamName, e.EventID, EventYear
  70. FROM Team t
  71. INNER JOIN Event e
  72. ON e.EventID = t.EventID
  73. WHERE EventYear = '2017'
  74. */
  75.  
  76. ---- List Down the Team ID and Team Name who took part in the 2018 MokeChase event in ascending order
  77. --SELECT t.TeamID, t.TeamName
  78. --FROM Team t
  79. --INNER JOIN Event e ON e.EventID = t.EventID
  80. --WHERE EventDesc = 'The 2018 MokeChase'
  81. --ORDER BY t.TeamID ASC;
  82.  
  83. ---- LIST all the Member ID and Name who has won the ‘Top Individual’ award
  84. --SELECT m.MemberID , m.Name
  85. --FROM Member m
  86. --INNER JOIN Participation p ON p.MemberID = m.MemberID
  87. --INNER JOIN Award a on a.AwardID = p.AwardID
  88. --WHERE AwardDesc = 'Individual with most points'
  89.  
  90. ---- Find Member with the most Female Pokemon caught
  91. --SELECT m.MemberID , m.Name , COUNT(*) AS "Total Female Pokemons Caught "
  92. --FROM Member m
  93. --INNER JOIN Owns o ON o.MemberID = m.MemberID
  94. --INNER JOIN Pokemon p ON p.PokemonID = o.PokemonID
  95. --WHERE PokemonGender = 'F'
  96. --GROUP BY m.MemberID , m.Name
  97. --ORDER BY COUNT(*)
  98.  
  99.  
  100. -- List the members who pay their bills with a mastercard, in ascending order of their names
  101. SELECT m.MemberID, m.Name, m.SponsorID
  102. FROM Member m WHERE m.SponsorID IN
  103. (SELECT mt.PrincipalID from MemberTrans mt
  104. INNER JOIN Payment pa
  105. ON mt.BillRef = pa.BillRef
  106. WHERE pa.CardType = 'M')
  107. ORDER BY m.Name ASC;
  108.  
  109. -- List down the total amount spent by the members in descending order
  110. SELECT m.MemberId, m.Name, SUM(b.TotalAmtDue) AS "Total Amount Spent"
  111. FROM Member m
  112. INNER JOIN MemberTrans mt
  113. ON m.SponsorID = mt.PrincipalID
  114. INNER JOIN Bill b
  115. ON mt.BillRef = b.BillRef
  116. WHERE b.BillEndDate IS NOT NULL
  117. GROUP BY m.MemberID, m.Name
  118. ORDER BY "Total Amount Spent" DESC;
  119.  
  120. -- List down the members who registered for enrichment classes in 2018 in ascending order of their names
  121. SELECT m.MemberID, m.Name, c.ClassStartDate, c.ClassDesc
  122. FROM Member m
  123. INNER JOIN MemberTrans mt
  124. ON m.MemberID = mt.PrincipalID
  125. INNER JOIN Registration r
  126. ON mt.TransID = r.TransID
  127. INNER JOIN Class c
  128. ON r.ClassID = c.ClassID
  129. WHERE DATEPART(year, c.ClassStartDate) = 2018
  130. ORDER BY c.ClassID ASC;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement