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

Langage SQL Discussion :

La traduction de l'opérateur divison en SQL ?


Sujet :

Langage SQL

  1. #1
    Débutant
    Inscrit en
    Mai 2009
    Messages
    392
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 392
    Points : 35
    Points
    35
    Par défaut La traduction de l'opérateur divison en SQL ?
    Bonjour,

    La division n’existe pas en SQL. Pour traduire la division, l'idée est d’utiliser la fonction de comptage COUNT mais je n'ai pas trouvé son traduction en SQL.

    Voici les 2 requêtes:

    1) Quels sont les noms des coureurs qui ont participé à toutes les étapes ?

    Voici le modèle relationnel:
    COUREUR(NuméroCoureur , NomCoureur , #CodeEquipe, #CodePays)
    ETAPE(NuméroEtape, DateEtape, VilleDép, VilleArr, NbKm, #CodeType)
    PARTICIPER(#NuméroCoureur, #NuméroEtape, TempsRéalisé)
    mon idée:

    1ère étape : On compte le nombre d'étapes.
    2ème étape : Ensuite on compte le nombre d'étapes parcourues par coureur.
    3ème étape : On compare en final les deux nombres en imbriquant les deux requêtes.

    SQL: ??

    2) Quelles sont les noms des salles qui ont diffusé tous les films du réalisateur "Hitchcock Alfred" ?
    Voici le modèle relationnel:
    SALLE (nom-salle, horaire, #code-film)
    FILM (code-film, titre, #code-réalisateur, #code-producteur)
    REALISATEUR (code-réalisateur, nom-réal, prénom-réal)
    mon idée:

    1ère étape : On compte le nombre des films du réalisateur "Hitchcock Alfred".
    2ème étape : Ensuite on compte le nombre des films diffusés par salle.
    3ème étape : On compare en final les deux nombres en imbriquant les deux requêtes.

    SQL: ??


    Merci.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 243
    Points : 12 874
    Points
    12 874
    Par défaut
    Bonjour,
    Il me semble que la division (au sens mathématique) existe en SQL (/), mais peut-être me trompe-je ?

    Quoi qu'il en soit, pour tes deux problèmes tu n'as pas besoin de division, une simple comparaison suffit !
    Tu devrais jeter un oeil du côté de Count(), Having()...

    Tatayo.

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 874
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 874
    Points : 53 048
    Points
    53 048
    Billets dans le blog
    6
    Par défaut
    Lisez l'article que j'ai écrit à ce sujet : http://sqlpro.developpez.com/cours/divrelationnelle/

    A +

  4. #4
    Modérateur

    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    Août 2006
    Messages
    16 799
    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 799
    Points : 34 048
    Points
    34 048
    Billets dans le blog
    14
    Par défaut
    1) Quels sont les noms des coureurs qui ont participé à toutes les étapes ?
    Récrivons cette question :
    Quels sont les noms des coureurs dont le nombre d'étape auxquelles ils ont participé est égal au nombre total d'étapes ?

    Donc, comme le suggère tatayo, comptage (COUNT), regroupement (GROUP BY) et restriction sur le regroupement (HAVING) sont les pistes à suivre.

  5. #5
    Expert éminent sénior
    Avatar de fsmrel
    Homme Profil pro
    Spécialiste en bases de données
    Inscrit en
    Septembre 2006
    Messages
    8 102
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Spécialiste en bases de données
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2006
    Messages : 8 102
    Points : 31 545
    Points
    31 545
    Billets dans le blog
    16
    Par défaut
    En complément, au moyen seulement de l'algèbre relationnelle (c'est-à-dire hors SQL) : à partir d’ici.

Discussions similaires

  1. [AC-2007] traduction d'une requête QBE en SQL
    Par mbo2 dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 29/04/2013, 09h23
  2. Réponses: 0
    Dernier message: 04/06/2011, 23h08
  3. [VB6] Problème avec l'opérateur LIKE en SQL
    Par MGD_Software dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 22/07/2006, 14h56
  4. Traduction de code Oracle vers SQL Server
    Par randomcl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 13/11/2005, 23h43
  5. Traduction du code oracle vers SQL - suite
    Par randomcl dans le forum Langage SQL
    Réponses: 1
    Dernier message: 10/11/2005, 14h40

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