[SQL] Help pour 1 requête !!

Help pour 1 requête !! [SQL] - Programmation

Marsh Posté le 21-06-2001 à 12:04:45    

Salut,
 
J'ai des difficultés à trouver la requête suivante:
 
Quels sont les voyages (identifiant et libellé) qui incluent une étape traversant une frontière ?
 
tables:
 
VOYAGE(idVoy, Libelle, Durée)
ETAPE(idVoy, Numetep, Type_Transport, id_Ville_Dep, id_Ville_Arr )
VILLE(id_Ville, Nom_Ville, NomPays )
PAYS(NomPays, Zone_Geo)
 
NB: le parcours de la france à la 1ere ville du pays n'est pas considére comme une etape. Par ex Paris-Rio et Rio-Paris ne figurent pas dans la table etape.
 
 :jap:

Reply

Marsh Posté le 21-06-2001 à 12:04:45   

Reply

Marsh Posté le 21-06-2001 à 12:30:39    

Code :
  1. select   distinct voyage.Libelle
  2. from
  3.          VOYAGE        voy,
  4.          ETAPE         eta,
  5.          ville         v_d,
  6.          ville         v_a
  7. where
  8.          eta.idVoy     = voy.idVoy
  9. and
  10.          eta.Numetep   != 1
  11. and
  12.          eta.Numetep   != (select   max(eta2.Numetep)
  13.                            from
  14.                                     ETAPE       eta2
  15.                            where
  16.                                     eta2.idVoy  = voy2.idVoy)
  17. and
  18.          v_d.id_Ville  = eta.id_Ville_Dep
  19. and
  20.          v_a.id_Ville  = eta.id_Ville_Arr
  21. and
  22.          v_d.NomPays   != v_a.NomPays


 
Bon, je dirais ça... Le select imbriqué n'est pas très joli mais bon je vais pas non plus y passer des heures, j'ai une proc (une VRAIE, pas un truc d'étudiant ;)) à modifier en urgence :D
 
Si tu veux plus de détails, demande.

Reply

Marsh Posté le 21-06-2001 à 12:41:48    

enquel langag?

Reply

Marsh Posté le 21-06-2001 à 12:45:44    

C'est dans le titre : SQL!!!

Reply

Marsh Posté le 21-06-2001 à 12:51:39    

Fred999 a écrit a écrit :

C'est dans le titre : SQL!!!  




 
arf desolé

Reply

Marsh Posté le 21-06-2001 à 13:02:04    

merci, mais ca veut dire quoi le ! ?

Reply

Marsh Posté le 21-06-2001 à 13:04:00    

Alysum a écrit a écrit :

merci, mais ca veut dire quoi le ! ?  




 
!= veut dire different de

Reply

Marsh Posté le 21-06-2001 à 13:14:55    

Alysum > Ca t'arrive d'aller en cours???
 
!= c'est la base... et le SQL n'est jamais le premier langage que tu apprends!!!

Reply

Marsh Posté le 21-06-2001 à 13:41:21    

il me semble que le different c <> et pas !=
:D
 
Pi t'as oublié kil voulait aussi l'id :D
 
Pi kest ce ke tu entend par frontiere ? definit ce ke c kune frontiere ... et la tu auras les conditions a mettre dans ta clause where !!!!

 

[edit]--Message édité par wouatouwouatou--[/edit]

Reply

Marsh Posté le 21-06-2001 à 14:05:33    

<> et != signifient la même chose, ensuite ça dépend du langage.

Reply

Marsh Posté le 21-06-2001 à 14:05:33   

Reply

Marsh Posté le 21-06-2001 à 14:18:30    

une requete pour recuperer les voyages dont au moins une etape passe d'un pays a un autre:
 

Code :
  1. select voy.idVoy,
  2.        voy.libelle,
  3.        count(etap.numetep)
  4. from etape etap,
  5.      ville v_dep,
  6.      ville v_arr,
  7.      voyage voy
  8. where v_dep.id_Ville=etap.id_Ville_Dep
  9.       AND v_arr.id_Ville=etap.id_Ville_Arr
  10.       AND v_dep.nomPays<>v_arr.nomPays
  11.       AND voy.idVoy=etap.idVoy
  12. group by voy.idVoy,
  13.          voy.libelle


 
Mais reste a voir si elle est correcte :D

Reply

Marsh Posté le 21-06-2001 à 14:32:26    

wouatou >
 
Ca fait plaisir de voir que tu lis les posts de tout le monde, en particulier les miens :D
 
Sinon, pour ta requête :
 
- je ne vois pas ce qu'un count() vient faire dans l'histoire, sans le count ça irait aussi!!!
- il a dit que les premières et dernières étapes ne comptaient pas comme franchissement de frontière... C'est pourquoi j'ai rajouté deux critères.
- t'as une indentation de goret :D

Reply

Marsh Posté le 21-06-2001 à 20:41:33    

hihi. j'avais pas compris pkoi il voulait pas compter rio-paris et paris-rio... Je croyais ke c t pour brouiller les pistes :D
 
pi c vrai ke le count est inutile.. enfin presque... fo le virer avec le group by et mettre un distinct a la place...
 
Mais sinon pour le truc des premiere et derniere etapes.. ben de toute facon, il sont pas dans la table ETAPE alors ... :sarcastic:
 
l'indentation vient du copier/coller :D

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed