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

MS SQL Server Discussion :

sous-requête


Sujet :

MS SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut sous-requête
    Salut à tous,
    j'ai un petit problème de sous requête :
    J'ai 3 tables, possédant chacune un champ d'identification de l'enregistrement.
    Voici un schéma simple de la structure :

    J'aimerais pouvoir compter le nombre d'enregistrements de la Table 3, en fonction de l'ID de la Table 1.
    Je suppose qu'il faut faire une sous requête puisque j'aimerais aussi récupérer , quelques champs des tables 1 et 2, si toutefois cela est possible.
    J'ai essayé plusieurs sous requêtes en lisant le tutoriel du site, mais sans succès, le mieux que j'ai pu avoir est le nombre total d'enregistrements dans la Table 3...
    J'éspère que vous y voyez clair!
    Merci
    a+

  2. #2
    Membre averti
    Inscrit en
    Avril 2004
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Avril 2004
    Messages : 53
    Par défaut
    si la table 2 est liée à la table 3, il devrait y avoir une cle etrangère reliée à la clé primaire de la table 3. Par conséquent il faudrait compter le nombre d'occurences et ce en fonction de la cle étrangère venant de la table 3

  3. #3
    Membre confirmé Avatar de David.V
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    191
    Détails du profil
    Informations personnelles :
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2004
    Messages : 191
    Par défaut Re: sous-requête
    Citation Envoyé par Mayhem
    Salut à tous,
    j'ai un petit problème de sous requête :
    J'ai 3 tables, possédant chacune un champ d'identification de l'enregistrement.
    Voici un schéma simple de la structure :

    J'aimerais pouvoir compter le nombre d'enregistrements de la Table 3, en fonction de l'ID de la Table 1.
    Je suppose qu'il faut faire une sous requête puisque j'aimerais aussi récupérer , quelques champs des tables 1 et 2, si toutefois cela est possible.
    J'ai essayé plusieurs sous requêtes en lisant le tutoriel du site, mais sans succès, le mieux que j'ai pu avoir est le nombre total d'enregistrements dans la Table 3...
    J'éspère que vous y voyez clair!
    Merci
    a+
    Je pense que ça devrait ressembler à ça (pas testé cela dit) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TAB1.IDTABLE1, (SELECT count(IDTABLE3) FROM TABLE1 T1, TABLE2 T2, TABLE3T3 WHERE T1.IDTABLE1 = T2.IDTABLE1 AND T2.IDTABLE2 = T3.IDTABLE2 AND T1.IDTABLE1 = TAB1.IDTABLE1) FROM TABLE1 TAB1
    ça doit te retourner pour chaque ID de la table1, le nombre d'enreg de la table 3 utilisé si je me trompe pas.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut Re: sous-requête
    Je pense que ça devrait ressembler à ça (pas testé cela dit) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TAB1.IDTABLE1, (SELECT count(IDTABLE3) FROM TABLE1 T1, TABLE2 T2, TABLE3T3 WHERE T1.IDTABLE1 = T2.IDTABLE1 AND T2.IDTABLE2 = T3.IDTABLE2 AND T1.IDTABLE1 = TAB1.IDTABLE1) FROM TABLE1 TAB1
    ça doit te retourner pour chaque ID de la table1, le nombre d'enreg de la table 3 utilisé si je me trompe pas.
    Merci pour ta réponse mais je ne comprends pas bien ta requête :
    Dans le 'FROM', que veux-tu désigner par 'TABLE1 T1', ce n'est pas simplement 'TABLE1'?
    Le dernier 'AND' également ('T1.IDTABLE1 = TAB1.IDTABLE1')
    Qu'est T1 par rapport à TAB1?

  5. #5
    Membre confirmé

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Par défaut Re: sous-requête
    Salut,
    Citation Envoyé par Mayhem
    Merci pour ta réponse mais je ne comprends pas bien ta requête :
    Dans le 'FROM', que veux-tu désigner par 'TABLE1 T1', ce n'est pas simplement 'TABLE1'?
    Il est utilisé pour renomer la table.
    Citation Envoyé par Mayhem
    Le dernier 'AND' également ('T1.IDTABLE1 = TAB1.IDTABLE1')
    Qu'est T1 par rapport à TAB1?
    il est utilisé pour lier la sous requête à la requête principale. T1 est une autre instance de la table Table1 différente de tab1. si je peux m'exprimer comme ça.

    krest

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 80
    Par défaut
    Merci beaucoup pour vos réponses, la requête fonctionne!

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

Discussions similaires

  1. [MFC] [API mySQL] Sous requêtes
    Par Guybrush113 dans le forum MFC
    Réponses: 5
    Dernier message: 29/04/2004, 16h14
  2. Problème DBExpress et sous requêtes ???
    Par Trulane dans le forum Bases de données
    Réponses: 5
    Dernier message: 26/03/2004, 14h40
  3. Requêtes et sous requêtes
    Par lau2nyce dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/03/2004, 15h14
  4. suppression avec sous requête conditionnelle
    Par melmel dans le forum Requêtes
    Réponses: 8
    Dernier message: 18/03/2004, 23h20
  5. Réponses: 3
    Dernier message: 18/05/2003, 00h16

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