IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Requêtes et SQL. Discussion :

Pb Requête SQL


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut Pb Requête SQL
    bonjour j'ai des requêtes à faire ,étant très nul en SQL je galère énormément

    Voilà le modèle relationnel:

    Voiture(nv,mar,mod,cat,num_A)
    Tarif(cat,prix)
    client(nc,nom,ville)
    location(nv, nc,debut,fin)
    agence(num_A,nom_A,direc)

    nv=identifiant de la voiture
    mar=marque de la voiture
    cat=catégorie (A,B,C...)
    Num_A=numéro de l'agence
    NC=identifiant client
    direc=nom du directeur
    Debut =date de début de la location
    Fin = date de fin de la location


    voilà les requêtes que j'aimerais formuler en SQL

    -Quels sont les clients n'ayant pas loué de voiture de catégorie A?
    -Quels sont les directeurs d'agence ayant loué (comme client) une voiture dans une autre agence que celles qu'ils dirigent?
    -Quels sont les durée moyenne des locations durant plus de 6 jours?
    -Quels sont les catégories de voitures dont le prix de location est inférieur au prix moyen?
    -Donner pour chaque agence le nombre de location moyenne par mois sous forme d'analyse croisée
    - Donner le nombre de voiture de la base et le nombre de marque de voiture, ainsi que le nombre de marques différentes
    -Quels sont les nom des agences qui peuvent louer au moins 5 voitures

  2. #2
    ced
    ced est déconnecté
    Rédacteur/Modérateur

    Avatar de ced
    Homme Profil pro
    Gestion de bases de données techniques
    Inscrit en
    Avril 2002
    Messages
    6 040
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : Gestion de bases de données techniques
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Avril 2002
    Messages : 6 040
    Points : 23 795
    Points
    23 795
    Par défaut
    Bonjour,

    Pour chacune des requêtes demandées, montre-nous déjà ce que tu as fait, qu'on valide ou qu'on t'aide à corriger ce qui n'irait pas.

  3. #3
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2011
    Messages
    422
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2011
    Messages : 422
    Points : 99
    Points
    99
    Par défaut
    -Quels sont les clients n'ayant pas loué de voiture de catégorie A?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select NC
    from location, voiture 
    where location.nv=voiture.nv
    and nv not in (select nv from voiture where cat ='A')
    -Quels sont les directeurs d'agence ayant loué (comme client) une voiture dans une autre agence que celles qu'ils dirigent?
    euhh..............?

    -Quels sont les durée moyenne des locations durant plus de 6 jours?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select nc,nv avg(fin-début) 
    from location
    group by nc,nv
    having (fin-debut)>6
    -Quels sont les catégories de voitures dont le prix de location est inférieur au prix moyen?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    select cat
    from tarif
    group by cat
    having prix >avg(prix)
    -Donner pour chaque agence le nombre de location moyenne par mois sous forme d'analyse croisée
    euhhhhh...........???????

    - Donner le nombre de voiture de la base et le nombre de marque de voiture, ainsi que le nombre de marques différentes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    select count(nv),count(distinct Mar),count(distinct modèle)
    from voiture
    -Quels sont les nom des agences qui peuvent louer au moins 5 voitures
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    select num_A,nom
    from voiture,agence,location
    where voiture.num_A=agence.num_A
    group by num_A
    having count(*)>5

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 801
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2006
    Messages : 16 801
    Points : 34 063
    Points
    34 063
    Billets dans le blog
    14
    Par défaut
    Ta demande ressemble fort à un exercice scolaire. Si c'est le cas, il semble que ton prof ne vous ait pas encore appris la syntaxe normalisée des jointures en vigueur depuis 1992. Tu pourras demander à ton prof s'il a l'intention de vous en parler prochainement ou s'il se contentera de vous délivrer un enseignement du siècle précédent !

    Le principal argument en faveur de cette syntaxe moderne avec JOIN est que, par exemple, tu te serais aperçu qu'il manque une condition de jointure dans ta dernière requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    FROM voiture,agence,location
    WHERE voiture.num_A=agence.num_A
    3 tables dans le FROM mais une seule condition de jointure entre deux tables !
    => Écriture normalisée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    FROM voiture
    INNER JOIN agence ON voiture.num_A = agence.num_A
    INNER JOIN location ON -- manque condition de jointure !
    Pas trop le temps de regarder le reste pour le moment mais j'avoue que la demande suivante me laisse autant pantois que toi !
    -Donner pour chaque agence le nombre de location moyenne par mois sous forme d'analyse croisée

Discussions similaires

  1. Requête SQL
    Par Leludo dans le forum Langage SQL
    Réponses: 3
    Dernier message: 12/07/2024, 15h41
  2. [ DB2 ] [ AS400] requête sql
    Par zinaif dans le forum DB2
    Réponses: 6
    Dernier message: 23/08/2008, 19h42
  3. Utilisation de MAX dans une requête SQL
    Par Evil onE dans le forum Langage SQL
    Réponses: 7
    Dernier message: 15/06/2004, 18h38
  4. A propos d'une requête SQL sur plusieurs tables...
    Par ylebihan dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/09/2003, 16h26
  5. PB requète SQL avec Interbase
    Par missllyss dans le forum InterBase
    Réponses: 2
    Dernier message: 15/07/2003, 11h37

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo