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 :

Tableau croisé dynamique


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut Tableau croisé dynamique
    Bonjour à tous,

    J'aimerai une p'tite aide de votre part.
    J'ai une requête tableau croisé dynamique, qui me donne en sortie les résultats suivants :

    Produit1 Vente
    Produit A ; 50
    Produit B ; 100

    Le souci, c'est que j'aimerai qu'il m'indique également en résultat de la requête les produits pour lesquels la vente est à 0. Ainsi, si pour le produit C ma vente est à 0, il ne restira pas dans mon TCD.
    Or j'aimerai qu'il m'affiche :

    Produit C : 0

    Avez-vous une idée pour contourner le problème?

    Merci

  2. #2
    Rédacteur/Modérateur

    Avatar de Jean-Philippe André
    Homme Profil pro
    Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Inscrit en
    Juillet 2007
    Messages
    14 656
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Power Platform, ex-Développeur VBA/C#/VB.Net
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2007
    Messages : 14 656
    Points : 34 370
    Points
    34 370
    Par défaut
    Bonjour,
    tu peux passer par une sous requête LEFT JOIN avec pour objectif de cette sous requête d'avoir la liste exhaustive des produits disponibles.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut
    Hello,

    J'ai essayé de faire un left join, mais ça plante à chaque fois.

    Je vais essayer de réexpliquer mon pb de façon plus simple.
    J'ai une table de vente :

    Vendeur Montant Annee
    Bernard 1200 2001
    Alain 500 2001
    Bernard 2500 2001
    Franck 500 2002

    J'ai fait la requête croisée suivante, qui m'affiche en tête de colonne le nom, et en tête de ligne le montant de la vente, en 2001. Il me donne en résultat le tableau suivant.

    Vendeur 2001
    Alain 7 500,00 €
    Bernard 3 700,00 €

    Franck ne ressort pas en résultat, hors j'aimerai qu'il le soit, avec 0 en montant. J'ai essayé de modifier le SQL, mais pour l'instant, je n'y arrive pas. Quelqu'un a une idée?

    Merci bcp.

  4. #4
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Est-ce que tes colonnes sont vides, ou nulles... Sous Access, il me semble que la fonction REPLACE marche...


  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    149
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2003
    Messages : 149
    Points : 93
    Points
    93
    Par défaut
    Déjà merci à tous pour votre aide.

    Non, mes cellules ne sont pas vides.
    J'ai essayé de penser à une autre façon de faire pour résoudre ce problème.

    Ma requête croisée retourne pour chaque vendeur, pour chaque devise, le montant de la vente. Je stocke dans une autre table, pour chaque vendeur, pour chaque devise, un montant égal à 0.

    Si je fais la somme des 2 tables, je devrai avoir le résultat escompté. Est-ce que c'est possible en SQL. En prenant un exemple, ça sera peut-être plus parlant :

    Table 1 (résultat requête croisée) :
    Jack ; Eur ; 1500
    Paul ; USD ; 2500

    Table 2 :
    Jack ; Eur; 0
    Jack ; USD ; 0
    Paul ; Eur ; 0
    Paul ; USD ; 0

    En faisant la somme des 2 tables, j'aurais donc :
    Jack ; Eur ; 1500 (=1500+0)
    Jack ; USD ; 0
    Paul ; Eur ; 0
    Paul ; USD ; 0

    Ca vous semble réalisable?

    Merci bcp.

  6. #6
    Modérateur
    Avatar de Chtulus
    Homme Profil pro
    Ingénieur
    Inscrit en
    Avril 2008
    Messages
    3 094
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur
    Secteur : Santé

    Informations forums :
    Inscription : Avril 2008
    Messages : 3 094
    Points : 8 678
    Points
    8 678
    Par défaut
    Bonsoir,

    Tout est possible (), pour revenir sérieux, tu aurais ta requête initiale...

Discussions similaires

  1. filtrer tableau croisé dynamique sous excel
    Par kernel57 dans le forum Excel
    Réponses: 7
    Dernier message: 17/11/2006, 14h18
  2. Tableau croisé dynamique
    Par papy_tergnier dans le forum Access
    Réponses: 5
    Dernier message: 26/12/2005, 18h05
  3. Tableau croisé dynamiqué élaboré sous Access
    Par Mahefasoa dans le forum Access
    Réponses: 1
    Dernier message: 20/11/2005, 08h04
  4. tableau Croisé Dynamique
    Par Bjuice2 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 10/11/2005, 10h36
  5. tableau croisé dynamique sous delphi, comment ?
    Par Brice Yao dans le forum Bases de données
    Réponses: 2
    Dernier message: 20/07/2005, 09h33

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