Bonjour tout le monde, j'espère que vous allez bien.
Je suis nouveau ici et j'aimerais vous demander un petit coup de main ^^"
J'ai une série d'exercices pour m'entrainer sur un langage que j'apprends, le SQL Oracle. Mais il y en a un, j'ai beau me casser la tête depuis plus de trois jours, ça ne vient pas.
L'intitulé c'est :
Voici les différentes tables :Affichez le numéro du train, le nom du train et le nombre de places. Ne prendre en compte que les trains qui ont parcouru une distance supérieure à 300 Km le 22/10/2020 et pour lesquels des billets ont été réservés.
Triez les résultats par le numéro du train.
Mon problème, c'est que je n'arrive pas à passer de T_TRAIN (les trains qui sont partis le 22 et qui ont fait 300 kilomètres - ça j'y arrive) à faire la SUM de toutes les NB_SEAT du même train et l'afficher...
Donc en gros, il existe 4 types de T_WAGON, WAGON_ID = 1 veut dire que c'est le premier type de wagon, qui possède NB_SEAT = 30. WAGON_ID = 2 veut dire qu'il y a NB_SEAT = 20. Et dans un train, on a par exemple 6 WAGON_ID = 1 et 7 WAGON_ID = 2.
Mon code :
Qui donne
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 SELECT DISTINCT tra.train_id "Nø train", tra.departure_time "Heure de depart", dep.city ||' - '|| dest.city "Depart - Arrivee", (SELECT SUM(E.NB_SEAT) FROM T_WAGON e JOIN T_WAGON_TRAIN g ON E.WAGON_ID = G.WAG_TR_ID JOIN T_TRAIN t ON G.WAG_TR_ID = T.TRAIN_ID WHERE T.TRAIN_ID = tra.train_id) "Nombre de place" FROM t_train tra JOIN t_wagon_train wagtra ON tra.train_id = wagtra.train_id JOIN t_wagon wag ON wagtra.wagon_id = wag.wagon_id JOIN vu_station dep ON dep.station_id = tra.departure_station_id JOIN vu_station dest ON dest.station_id = tra.arrival_station_id JOIN t_ticket tic ON wagtra.wag_tr_id = tic.wag_tr_id WHERE tra.distance > 300 AND tic.reservation_id IS NOT NULL AND TO_CHAR(tra.departure_time, 'DD/MM/YYYY') LIKE '22/10/2020' ORDER BY tra.train_id /
C'est surement un code horrible et très moche j'en suis navré, je débute xD
Si quelqu'un à un conseil ou une astuce, j'aimerais bien savoir comment faire.
Bien à vous !
Partager