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 :

Probleme avec LEFT OUTER JOIN [AC-2003]


Sujet :

Requêtes et SQL.

  1. #1
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut Probleme avec LEFT OUTER JOIN
    Bonjour à tous,
    J'ai un petit souci concernant une requete avec LEFT OUTER JOIN.
    En effet j'ai crée deux requête une pour calculer le chiffre d'affaires previsionnel et l'autre le chiffre d'affaires reel. Et dans une troisieme requete en faite je reprends les deux chiffre d'affaires pour faire des comparaisons. Seuleument il a un probleme et la requete ne m'affiche que le chiffre d'affaires reel.

    Requête "Rq_Total ca reel"
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CA.site, CA.annee, CA.mois, CA.type_ca, Sum(CA.ca) AS SommeDeca
    FROM CA
    GROUP BY CA.site, CA.annee, CA.mois, CA.type_ca
    HAVING (((CA.type_ca)="reel"));

    Requête "Rq_Total ca budget"
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT CA.site, CA.annee, CA.mois, CA.type_ca, Sum(CA.ca) AS SommeDeca
    FROM CA
    GROUP BY CA.site, CA.annee, CA.mois, CA.type_ca
    HAVING (((CA.type_ca)="budget"));

    Requete à jointure posant problème
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT [Rq_Total ca budget].site, [Rq_Total ca budget].annee, [Rq_Total ca budget].mois, [Rq_Total ca budget].SommeDeca, [Rq_Total ca reel].SommeDeca
    FROM [Rq_Total ca budget] LEFT JOIN [Rq_Total ca reel] ON ([Rq_Total ca budget].site = [Rq_Total ca reel].site) AND ([Rq_Total ca budget].annee = [Rq_Total ca reel].annee) AND ([Rq_Total ca budget].mois = [Rq_Total ca reel].mois) AND ([Rq_Total ca budget].type_ca = [Rq_Total ca reel].type_ca);

  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 642
    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 642
    Points : 34 354
    Points
    34 354
    Par défaut
    salut,

    tu as fait une jointure externe de trop sur ton dernier champ
    AND ([Rq_Total ca budget].type_ca = [Rq_Total ca reel].type_ca);
    or dans un cas ton type_ca vaut "reel" et dans l'autre il vaut "budget"

  3. #3
    Responsable Arduino et Systèmes Embarqués


    Avatar de f-leb
    Homme Profil pro
    Enseignant
    Inscrit en
    Janvier 2009
    Messages
    12 742
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Janvier 2009
    Messages : 12 742
    Points : 57 547
    Points
    57 547
    Billets dans le blog
    42
    Par défaut
    salutations,

    je pense qu'on peut avantageusement regrouper en une seule requête:

    Code sql : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT CA.site, CA.annee, CA.mois,
    Sum(iif(CA.type_ca="reel", CA.ca,0)) AS SommeDecaReel,
    Sum(iif(CA.type_ca="budget", CA.ca,0)) AS SommeDecaBudget
    FROM CA
    GROUP BY CA.site, CA.annee, CA.mois ;

    à tester, j'ai fait vite...

  4. #4
    Membre régulier
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2012
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2012
    Messages : 241
    Points : 106
    Points
    106
    Par défaut
    Merci à vous deux pour vos réponse. Je vais prendre la deuxieme solution qui va me permettre d'optimiser ma base de données

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

Discussions similaires

  1. problème avec LEFT OUTER JOIN
    Par tofque dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 06/03/2008, 11h57
  2. [Optimisation] Requete trop lourde avec Left outer join...
    Par batosai dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/05/2006, 13h40
  3. Probleme de NULL avec LEFT OUTER JOIN
    Par jiluc dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 12/01/2006, 14h42
  4. Problème avec left outer join
    Par jgfa9 dans le forum Requêtes
    Réponses: 1
    Dernier message: 22/08/2005, 21h07
  5. Problème de performance avec LEFT OUTER JOIN
    Par jgfa9 dans le forum Requêtes
    Réponses: 6
    Dernier message: 17/07/2005, 13h17

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