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 :

Access: Transform -pivot


Sujet :

Requêtes et SQL.

  1. #1
    al1
    al1 est déconnecté
    Membre à l'essai
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 22
    Points : 15
    Points
    15
    Par défaut Access: Transform -pivot
    Bonjour,

    Voici mon problème, je fais la requête suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    TRANSFORM Count(num_form) as total              
    SELECT distinct TCategorie.intitule_cat          
    FROM TUsers U, TFormulaire F, TCategorie C            
    WHERE  TCategorie.num_cat =TFormulaire.num_cat 
    AND F.login = C.login                      
    GROUP BY  TCategorie.intitule_cat              
    PIVOT  name_user
    Voici les tables que j'utilise.

    TFormulaire (num_form, login, num_cat)
    TCategorie (num_cat, intitule_cat )
    TUsers (login, name_user)

    Cette requête me génère un tableau en 2D avec les catégories et les noms des personnes en colonnes et lignes, ainsi j'obtiens le nombre de formulaire par personne et par catégorie.

    Cependant quand j'ai une catégorie qui n'a aucun Formulaire d'affecté, cette catégorie n'apparaît pas. Pareil si une personne n'a pas de formulaire d'affecter.

    Auriez vous une idée pour ce problème ?

    Merci d'avance.
    :scarymovie: Quelle prétention de prétendre que l'informatique est récente : Adam et Eve avaient déjà un Apple !

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 41
    Points : 37
    Points
    37
    Par défaut
    çà vient de ta condition sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE  TCategorie.num_cat =TFormulaire.num_cat
    .

    Forcément, si une catégorie n'a aucun formulaire, elle n'apparaîtra pas.

  3. #3
    Nouveau Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 8
    Points : 0
    Points
    0
    Par défaut Il me semble que ...
    Citation Envoyé par kdestine Voir le message
    çà vient de ta condition sur le
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    WHERE  TCategorie.num_cat =TFormulaire.num_cat
    .

    Forcément, si une catégorie n'a aucun formulaire, elle n'apparaîtra pas. :aie:
    D'après mes vagues souvenir d'un SQL unpeu plus évolué que celui de µ-soft, il y existait une possibilité de forcer l'affichage des données dans ce cas de figure.

    Dans Sybase ou oracle, il suffit de rajouter "*" avant ou après le '=' (c'est selon, je ne m'en rappelle plus...)

    Ainsi :

    TCategorie.num_cat =*TFormulaire.num_cat
    ou
    TCategorie.num_cat *=TFormulaire.num_cat

    à essayer !

    [ a moins que ce ne soit plutôt un '+' ?!?]

    dans ce cas:

    TCategorie.num_cat =+ TFormulaire.num_cat

    ou

    TCategorie.num_cat += TFormulaire.num_cat

    ...

  4. #4
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    91
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2012
    Messages : 91
    Points : 64
    Points
    64
    Par défaut
    Au cas où ce sujet intéresserait quelqu'un, on peut forcer la prise en compte des lignes qui n'ont pas de correspondance dans plusieurs les tables par les jointures "Left Join" et "Right Join"; quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    ...
    SELECT distinct TCategorie.intitule_cat          
    FROM (TUsers U Right Join TFormulaire F on U.login = F.login)
    Left Join TCategorie C on  C.num_cat = F.num_cat
    ...
    Je n'ai pas testé "cette requête en particulier" mais j'utilise souvent "ce genre de requêtes", et ça marche ...

Discussions similaires

  1. [Access] Transformer Requete SQL avec le générater d'expression
    Par rgdu86 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 22/02/2008, 10h43
  2. Transform/Pivot : Que peut on mettre dans le Pivot ?
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 11/07/2007, 11h06
  3. Tout afficher dans une requete de type "Transform .. pivot"
    Par Mythrandil dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 11/07/2007, 09h44
  4. Réponses: 2
    Dernier message: 28/03/2007, 23h26
  5. SELECT * FROM (Transform...pivot...)... ???
    Par davidso dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/01/2006, 18h04

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