Advertisement
asahraoui

TPMatche Réponse

Oct 24th, 2016
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
T-SQL 7.90 KB | None | 0 0
  1. --1) Quels est le ou les matche qui on le plus grand Nombre de spéctacle.
  2.  
  3. select *
  4. from Matche
  5. where NombreSpectateur = (select max(NombreSpectateur) from Matche)
  6.  
  7. --2) Quelle sont les noms de stades dans le quelle on a jouée le plus grand Nombre de matche.
  8.  
  9. select S.CodeStade, S.NomStade
  10. from Stade S inner join Matche M on S.CodeStade=M.CodeStade
  11. group by S.CodeStade, S.NomStade
  12. having Count(*) = ( select top 1 Count(*)
  13.                     from Matche
  14.                     group by CodeStade
  15.                     order by Count(*) desc )
  16.  
  17. --3) Lister pour chaque Matche le nom de Equipe Locale, le nom de Equipe Visiteur, Nombre de But Locale, Nombre de But Visiteur.
  18.  
  19. --Première solution :
  20.  
  21. select M.CodeMatche, EL.NomEquipe as NomEquipeLocale, EV.NomEquipe as NomEquipeVisiteur, M.NombreButLocale, M.NombreButVisiteur
  22. from Equipe EL  inner join Matche M on EL.CodeEquipe=M.CodeEquipeLocale
  23.                 inner join Equipe EV on M.CodeEquipeVisiteur=EV.CodeEquipe
  24.  
  25. --Deuxième solution :
  26.  
  27. select M.CodeMatche,(select EL.NomEquipe from Equipe EL where EL.CodeEquipe=M.CodeEquipeLocale) as NomEquipeLocale
  28.                     ,(select  EV.NomEquipe from Equipe EV where M.CodeEquipeVisiteur=EV.CodeEquipe) as NomEquipeVisiteur,
  29.                     M.NombreButLocale, M.NombreButVisiteur
  30. from Matche M
  31.  
  32. --4) Donné pour chaque Equipe le Nombre de But marqué.
  33.  
  34. --Première solution :
  35.  
  36. select E.CodeEquipe, E.NomEquipe, Sum(NombreButMarqué) as NombreButMarqué
  37. from    (
  38.         select CodeEquipeLocale as CodeEquipe, Sum(NombreButLocale) as NombreButMarqué
  39.         from Matche
  40.         group by CodeEquipeLocale
  41.         union all
  42.         select CodeEquipeVisiteur as CodeEquipe, Sum(NombreButVisiteur) as NombreButMarqué
  43.         from Matche
  44.         group by CodeEquipeVisiteur
  45.         ) R inner join Equipe E on R.CodeEquipe=E.CodeEquipe
  46. group by E.CodeEquipe, E.NomEquipe
  47.  
  48. --Deuxième solution :
  49.  
  50. select E.CodeEquipe, E.NomEquipe,
  51.                     ISNULL((select Sum(M.NombreButLocale) from Matche M where M.CodeEquipeLocale=E.CodeEquipe),0) +
  52.                     ISNULL((select Sum(M.NombreButVisiteur) from Matche M where M.CodeEquipeVisiteur=E.CodeEquipe),0) as  NombreButMarqué
  53. from Equipe E
  54.  
  55. --5) Donné pour chaque Equipe le Nombre de But reçus.
  56.  
  57. --Première solution :
  58.  
  59. select E.CodeEquipe, E.NomEquipe, Sum(NombreButReçus) as NombreButReçus
  60. from    (
  61.         select CodeEquipeLocale as CodeEquipe, Sum(NombreButVisiteur) as NombreButReçus
  62.         from Matche
  63.         group by CodeEquipeLocale
  64.         union all
  65.         select CodeEquipeVisiteur as CodeEquipe, Sum(NombreButLocale) as NombreButReçus
  66.         from Matche
  67.         group by CodeEquipeVisiteur
  68.         ) R inner join Equipe E on R.CodeEquipe=E.CodeEquipe
  69. group by E.CodeEquipe, E.NomEquipe
  70.  
  71. --Deuxième solution :
  72.  
  73. select E.CodeEquipe, E.NomEquipe,
  74.                     ISNULL((select Sum(M.NombreButVisiteur) from Matche M where M.CodeEquipeLocale=E.CodeEquipe),0) +
  75.                     ISNULL((select Sum(M.NombreButLocale) from Matche M where M.CodeEquipeVisiteur=E.CodeEquipe),0) as  NombreButReçus
  76. from Equipe E
  77.  
  78. --6) Donné pour chaque Equipe le Nombre de But marqué et reçus.
  79.  
  80. --Première solution :
  81.  
  82. select E.CodeEquipe, E.NomEquipe, Sum(NombreButMarqué) as NombreButMarqué, Sum(NombreButReçus) as NombreButReçus
  83. from    (
  84.         select CodeEquipeLocale as CodeEquipe, Sum(NombreButLocale) as NombreButMarqué, Sum(NombreButVisiteur) as NombreButReçus
  85.         from Matche
  86.         group by CodeEquipeLocale
  87.         union all
  88.         select CodeEquipeVisiteur as CodeEquipe, Sum(NombreButVisiteur) as NombreButMarqué, Sum(NombreButLocale) as NombreButReçus
  89.         from Matche
  90.         group by CodeEquipeVisiteur
  91.         ) R inner join Equipe E on E.CodeEquipe=R.CodeEquipe
  92. group by E.CodeEquipe, E.NomEquipe
  93.  
  94. --Deuxième solution :
  95.  
  96. select E.CodeEquipe, E.NomEquipe,
  97.                     ISNULL((select Sum(M.NombreButLocale) from Matche M where M.CodeEquipeLocale=E.CodeEquipe),0) +
  98.                     ISNULL((select Sum(M.NombreButVisiteur) from Matche M where M.CodeEquipeVisiteur=E.CodeEquipe),0) as  NombreButMarqué,
  99.                     ISNULL((select Sum(M.NombreButVisiteur) from Matche M where M.CodeEquipeLocale=E.CodeEquipe),0) +
  100.                     ISNULL((select Sum(M.NombreButLocale) from Matche M where M.CodeEquipeVisiteur=E.CodeEquipe),0) as  NombreButReçus
  101. from Equipe E
  102.  
  103. --7) Lister pour chaque Equipe le Nombre de point (3 points pour chaque matche gagnée, 1 point pour chaque égalité, 0 point pour chaque défaite).
  104.  
  105. --Première solution :
  106.  
  107. select E.CodeEquipe, E.NomEquipe, Sum([Nombre de point]) as [Nombre de point]
  108. from    (
  109.             select E.CodeEquipe, Count(*)*3 as [Nombre de point], E.CodeEquipe as CE
  110.             from Matche M, Equipe E
  111.             where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur)
  112.             or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur)
  113.             group by E.CodeEquipe
  114.             union all
  115.             select E.CodeEquipe, Count(*) as [Nombre de point], E.CodeEquipe as CE
  116.             from Matche M, Equipe E
  117.             where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe) and NombreButLocale=NombreButVisiteur
  118.             group by E.CodeEquipe
  119.         ) Resultat inner join Equipe E on Resultat.CodeEquipe=E.CodeEquipe
  120. group by E.CodeEquipe, E.NomEquipe
  121.  
  122. --Deuxième solution :
  123.  
  124. select E.CodeEquipe, E.NomEquipe,
  125.                     (select Count(*) from Matche M where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur) or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur))*3 +
  126.                     (select Count(*) from Matche M where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe) and NombreButLocale=NombreButVisiteur)
  127.                     as  [Nombre de point]
  128. from Equipe E
  129.  
  130. --8) Quelle Equipe qui a gagné le Tournoi.
  131.  
  132. --Première solution :
  133.  
  134. select top 1 E.CodeEquipe, E.NomEquipe, Sum([Nombre de point]) as [Nombre de point]
  135. from    (
  136.             select E.CodeEquipe, Count(*)*3 as [Nombre de point], E.CodeEquipe as CE
  137.             from Matche M, Equipe E
  138.             where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur)
  139.             or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur)
  140.             group by E.CodeEquipe
  141.             union all
  142.             select E.CodeEquipe, Count(*) as [Nombre de point], E.CodeEquipe as CE
  143.             from Matche M, Equipe E
  144.             where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe) and NombreButLocale=NombreButVisiteur
  145.             group by E.CodeEquipe
  146.         ) Resultat inner join Equipe E on Resultat.CodeEquipe=E.CodeEquipe
  147. group by E.CodeEquipe, E.NomEquipe
  148. order by Sum([Nombre de point]) desc
  149.  
  150. --Deuxième solution :
  151.  
  152. select top 1 E.CodeEquipe, E.NomEquipe,
  153.                     (select Count(*) from Matche M where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur) or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur))*3 +
  154.                     (select Count(*) from Matche M where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe) and NombreButLocale=NombreButVisiteur)
  155.                     as  [Nombre de point]
  156. from Equipe E
  157. order by [Nombre de point] desc
  158.  
  159. --9) Quelle sont les Equipes qui ont le plus grande nombre de point.
  160.  
  161. select top 1 E.CodeEquipe, E.NomEquipe from Equipe E
  162. where   (   (select Count(*)*3
  163.             from Matche M
  164.             where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur)
  165.             or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur)
  166.             )
  167.             +
  168.             (select Count(*)
  169.             from Matche M
  170.             where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe)
  171.             and NombreButLocale=NombreButVisiteur
  172.             )
  173.         )
  174.         =
  175.         (select top 1 sum([Nombre de point]) as [Nombre de point]
  176.         from    (select Count(*)*3 as [Nombre de point], E.CodeEquipe as CE
  177.                 from Matche M, Equipe E
  178.                 where (M.CodeEquipeLocale=E.CodeEquipe and NombreButLocale>NombreButVisiteur)
  179.                 or (M.CodeEquipeVisiteur=E.CodeEquipe and NombreButLocale<NombreButVisiteur)
  180.                 group by E.CodeEquipe
  181.                 union all
  182.                 select Count(*) as [Nombre de point], E.CodeEquipe as CE
  183.                 from Matche M, Equipe E
  184.                 where (M.CodeEquipeLocale=E.CodeEquipe or M.CodeEquipeVisiteur=E.CodeEquipe) and NombreButLocale=NombreButVisiteur
  185.                 group by E.CodeEquipe
  186.                 ) R
  187.         group by R.CE
  188.         order by [Nombre de point] desc
  189.         )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement