Bonjour,
Je suis entrain de faire une requête SQL et celle-ci ne me retourne pas le bon résultat. En effet, elle est censé me retourner 1 au lieu de 0 comme elle le fait actuellement
En effet, il s'agit d'une mission avec deux escale et là, les villes choisit sont les ville des escales.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 SELECT COUNT(DISTINCT idVol) INTO nbVol FROM VOL JOIN MISSION ON VOL.idMission = MISSION.idMission JOIN ESCALE ON MISSION.idMission = ESCALE.idMission WHERE TRUNC(dateVol) = '17/05/15' AND ((villeDepart = 'Paris' AND villeArrivee = 'Marseille') OR (villeDepart = 'Paris' AND ville = 'Marseille') OR (ville = 'Paris' AND ville = 'Marseille') OR (ville = 'Paris' AND villeArrivee = 'Marseille')) AND ((TO_DATE(TO_CHAR(heureDepart,'HH24:MI'),'HH24:MI') = TO_DATE('11:00' ,'HH24:MI')) OR (TO_DATE(TO_CHAR(ESCALE.heureArrivee,'HH24:MI'),'HH24:MI') = TO_DATE('11:00','HH24:MI')));
Je pense que le problème provient de l'heure car il ne sait quelle heure choisir pour l'escale.
L'heure que je donne, c'est l'heure de la première escale, c'est-à-dire Paris ici.
Il faudrait prendre l'heure de la ville qui se trouve à gauche dans la condition
Je peut aussi avoir des missions avec une seule escale et dans ce cas, on prendra par exemple comme condition villeDepart et ville pour tester.
Mais également des missions avec 3, 4 escales.
Merci de votre aide
Partager