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

SQL Oracle Discussion :

Alias d'une table utilisé dans une sous requetes?


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut Alias d'une table utilisé dans une sous requetes?
    Bonsoir

    j'ai trouvé une requête qui permet de lister tous les docteur ayant examiner tous leurs patients :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    select * 
    from doc D
    where ( select count(distinct numPat) from rdv
               where rdv.numdoc = D.numdoc )
              =
             ( select count(*) from pat );
    mais je l'ai pas comprise, surtout que c'est la 1ere fois que je vois qu'un alias d'une table qui est utilisé dans une sous requêtes.

    pouvais vous m'éclaircir sur ce sujet?
    Merci d'avance

  2. #2
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    A ce que j'ai compris, c'est que le D.numdoc dans un 1er temp est à 1, 2, 3 ...
    est donc pour chaque docteur , on pourra compter le nombre de patient,
    ça me semble que c'est pas une équi-jointure,

    aussi j'avais lu dans un tutoriel , que les requetes imbriquée doivent toujours être a droite de l'operateur (= , > , < .. ) , est ce que c'est pas indispensable?

  3. #3
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    J'aurai plutôt écrit cette requête ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
      SELECT D.numdoc 
        FROM doc D
             INNER JOIN rdv R
               ON R.numdoc = D.numdoc
    GROUP BY D.numdoc
      HAVING count(DISTINCT R.numPat) = ( SELECT count(*) FROM pat );
    Mais oui, l'idée c'est de relier les docteurs et les rendez-vous, de compter de façon distinctes les patients qu'ils ont reçu et de comparer cette valeur à la table des patients.

  4. #4
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup Waldar
    Cette dernière requête est plus simple a comprendre
    et sinon je peux utilisé la même forme pour faire des divisions dans d'autres problèmes?

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    Par défaut
    Oui tout à fait !

  6. #6
    Membre régulier Avatar de 0redd
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    141
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 141
    Points : 79
    Points
    79
    Par défaut
    Merci beaucoup Waldar pour votre aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 13/11/2009, 16h06
  2. Réponses: 1
    Dernier message: 11/06/2008, 13h33
  3. Réponses: 3
    Dernier message: 20/12/2006, 17h59
  4. Réponses: 6
    Dernier message: 16/06/2006, 13h22
  5. copie d'une table Y d'une base A vers une table X d'une base
    Par moneyboss dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 30/08/2005, 21h24

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