Gestion de bus II

[10 min]

Une société de gestion d'autobus urbains dispose de la base de données ci-après pour représenter ses conducteurs, ses bus et ses lignes de bus.

1
Conducteur (#matricule:varchar(10), nom:varchar, prénom:varchar) 
2
Ligne (#num:numeric(2), km:numeric(4)) 
3
Bus (#immat:varchar(10), type:{Soufflets|Normaux|Réduits}, kilométrage:numeric(7), matricule=>Conducteur)  
4
TrajetParJour (#ligne=>Ligne, #immat=>Bus, nombre_de_trajets:numeric(2)) 
5
Station (#num:numeric, nom:varchar, adresse:varchar)
6
Arrêt (#ligne:=>Ligne, #station=>Station, rang:numeric) 

Question

Quelles lignes (numéros) ont pour arrivée la station "Royallieu".

Solution

1
SELECT N°Ligne 
2
FROM 
3
 (SELECT N°Ligne, Max(Rang) AS Arrivée 
4
  FROM Arrêts 
5
  GROUP BY N°Ligne) R1, 
6
 Arrêts,
7
 Station
8
WHERE R1.N°Ligne=Arrêts.N°Ligne 
9
AND R1.Arrivé=Arrêts.Rang 
10
AND Arrêt.N°Station= Station.N°Station
11
AND Station.Nom='Royallieu';