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 :

Comptage entre deux tables et enregistrements absents


Sujet :

Langage SQL

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut Comptage entre deux tables et enregistrements absents
    Bonjour,

    Mon intitulé n'est pas très clair, mais voici mon soucis (problème simplifié).

    J'ai 2 tables : tb_utilisateurs et tb_acces.

    La table tb_utilisteurs contient la liste de tout mes utilisateurs (champ 'Login') alors que la table tb_acces contient la liste des éventuels accès des utilisateurs (champs 'Login' et 'Chemin'), sachant qu'un utilisateur ne dispose pas forcément d'un accès mais qu'il peut en avoir plusieurs.

    Je souhaite faire une requête qui me ressorte pour chaque utilisateurs défini dans tb_utilisateurs le nombre d'accès qui lui sont définis, y compris les utilisateurs qui ne disposent pas d'accès.

    J'ai testé plusieurs requêtes notamment celle ci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    SELECT ta.Nb as Nb1, tu.Login as Log1, ta.Login as Log2
    FROM (select count(*) as Nb, Login from tb_acces by Login) ta
    LEFT JOIN tb_utilisateurs tu
    ON ta.Login = tu.Login
    mais je ne récupère pas les utilisateurs définis dans tb_utilisateurs et absent de tb_acces.

    Avez vous une idée ou une solution à me proposer ?

    Merci beaucoup.

  2. #2
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Bonjour,

    Je pense que tu te complique un peu la vie, si j'ai bien compris ton problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT tu.login, count(ta.login)
    FROM tb_utilisateurs tu
    JOIN tb_access ta
    ON tu.login = ta.login
    GROUP BY tu.login

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par lola06 Voir le message
    Bonjour,

    Je pense que tu te complique un peu la vie, si j'ai bien compris ton problème :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT tu.login, count(ta.login)
    FROM tb_utilisateurs tu
    JOIN tb_access ta
    ON tu.login = ta.login
    GROUP BY tu.login
    Merci pour cette réponse rapide.
    Le résultat n'est malheureusement pas celui attendu puisque cette requête me retourne uniquement le nombre d'acces existant pour les utilisateurs présents à la fois dans tb_utilisateurs et tb_acces, alors qu'il me faudrait également la liste des utilisateurs qui ne se trouvent pas dans tb_acces (donc avec un résultat count(...) à zéro).

    Peut être faut il que je fasse une UNION ?

  4. #4
    Membre émérite Avatar de lola06
    Femme Profil pro
    Consultante en Business Intelligence
    Inscrit en
    Avril 2007
    Messages
    1 316
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 37
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Consultante en Business Intelligence
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 316
    Points : 2 520
    Points
    2 520
    Par défaut
    Effectivement, dans ce cas remplace mon JOIN par LEFT OUTER JOIN.

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Octobre 2007
    Messages
    206
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2007
    Messages : 206
    Points : 196
    Points
    196
    Par défaut
    Citation Envoyé par lola06 Voir le message
    Effectivement, dans ce cas remplace mon JOIN par LEFT OUTER JOIN.
    A priori cela ..... fonctionne parfaitement.

    Merci beaoucp

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

Discussions similaires

  1. Hash table : enregistrement différents entre deux tables
    Par tidou95220 dans le forum SAS Base
    Réponses: 1
    Dernier message: 08/03/2013, 09h58
  2. Réponses: 4
    Dernier message: 13/07/2011, 14h46
  3. [1.x] Récupération enregistrements d'un relations entre deux tables
    Par mixka13 dans le forum Symfony
    Réponses: 4
    Dernier message: 30/05/2011, 17h19
  4. [AC-2007] Assurer le lien entre deux tables liées lors de la création d'un enregistrement
    Par dudul08 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 04/04/2011, 22h19
  5. [AC-2003] Problème lors d'un transfert d'enregistrement entre deux tables
    Par rberniga dans le forum VBA Access
    Réponses: 26
    Dernier message: 14/08/2009, 12h07

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