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

Développement SQL Server Discussion :

Requete de jointure


Sujet :

Développement SQL Server

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut Requete de jointure
    Bonjour à tous,

    Je suis novice dans ce forum et je voudrais une solution pour mon problème suivant:

    Je suis entrain de créer une requête (sous SQL 2008) qui me permet d'avoir mon chiffre d'affaire (CA) par Année/Mois et par article
    Pour faire cette requête j'ai fait une jointure (gauche) entre ma table article et ma table Facture:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    Select Year(Date) as Annee , 
     Month(Date) as Mois,
     Reference as Code article,
     Designation as Designation article, 
     SUM (MontantTTC) as CA 
    From F_ARTICLE 
    LEFT JOIN F_FACTURE 
     ON F_Article.Reference=F_Facture.Reference
    Le résultat:
    Année Mois Code article Designation Article CA
    2011 04 99999 Article Test 1000
    2011 04 99999 Article Test 2000

    Le problème est que lorsque l'article n'a pas de CA par mois, la requête n'affiche rien alors je souhaite avoir ce résultat
    Année Mois Code article Designation Article CA
    2011 03 99999 Article Test 0
    2011 04 99999 Article Test 1000
    2011 04 99999 Article Test 2000


    Merci à l'avance pour votre collaboration

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Décembre 2008
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 101
    Par défaut
    Citation Envoyé par Dali_Piero Voir le message

    Select Year(Date) as Annee , Month(Date) as Mois,Reference as Code article,Designation as Designation article, SUM (MontantTTC) as CA From F_ARTICLE LEFT JOIN F_FACTURE ON F_Article.Reference=F_Facture.Reference

    Le problème est que lorsque l'article n'a pas de CA par mois, la requête n'affiche rien alors je souhaite avoir ce résultat
    Année Mois Code article Designation Article CA
    2011 03 99999 Article Test 0
    2011 04 99999 Article Test 1000
    2011 04 99999 Article Test 2000
    Bonjour,

    Si vous remplacez
    par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ISNULL(SUM (MontantTTC),0) as CA
    Ca pourrait fonctionner.

  3. #3
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Bonjour


    Et pour le GROUP BY... c'était trop cher ou ils étaient en rupture de stock ?

    Donnez nous votre requête complète !

    Avec une jointure externe telle que vous l'avez faite(mais avec le group by ), vous devriez obtenir le résultat voulu !

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Bonsoir à tous,

    Merci pour votre réponse mais je pense que je suis obligé de vous transmettre ma requête complète

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
      SELECT TOP (100) PERCENT YEAR(dbo.F_FACTURE.DO_Date) AS Year
           , MONTH(dbo.F_FACTURE.DO_Date) AS Month
           , dbo.F_ARTICLE.AR_Ref AS [Article Code]
           , dbo.F_ARTICLE.AR_Design AS [Article Descriptions]
           , ISNULL(SUM(dbo.F_FACTURE.DL_MontantTTC), 0) AS [Net Sales TND]
           , ISNULL(SUM(dbo.F_FACTURE.DL_Qte),0) AS [Qte Vendu]
           , dbo.F_ARTICLE.AR_PoidsNet AS [Poids Kg]
        FROM dbo.F_ARTICLE
             LEFT OUTER JOIN dbo.F_FACTURE
               ON dbo.F_ARTICLE.AR_Ref = dbo.F_FACTURE.AR_Ref
    GROUP BY dbo.F_ARTICLE.AR_Ref
           , dbo.F_ARTICLE.AR_Design
           , MONTH(dbo.F_FACTURE.DO_Date)
           , dbo.F_ARTICLE.AR_PoidsNet
           , YEAR(dbo.F_FACTURE.DO_Date)

  5. #5
    Modérateur

    Profil pro
    dba
    Inscrit en
    Janvier 2010
    Messages
    5 643
    Détails du profil
    Informations personnelles :
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : dba

    Informations forums :
    Inscription : Janvier 2010
    Messages : 5 643
    Par défaut
    Je ne comprend pas trop votre besoin

    Dans votre exemple d'origine, je ne comprend pas pourquoi les deux dernières lignes ne sont pas groupées, puisqu'il s'agit du même produit, le même mois, même année...

    Si votre problème est de faire ressortir tous les produits tous les mois (meme les ou il n'y a pas eu de vente pour tel ou tel produit), alors le mieux est de passer par des tables de calendrier, et faire un produit cartesien avec la table des produits, puis votre jointure externe avec la table des factures.

    sinon, en alternative, vous pouvez générer une pseudo-table des mois avec une CTE recursive.

  6. #6
    Futur Membre du Club
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juin 2011
    Messages : 4
    Par défaut
    Bonsoir,
    Mon besoin est simple, je n'arrive pas à avoir le résultat souhaité à partir de ma requête qui me parait logique et correcte! (avoir toutes les CA des articles mensuellement même ceux avec des valeurs Null)

    @aieeeuuuuu: je ne vois pas pourquoi passer par une table intermédiaire alors que normalement la logique de la requete est correcte?

    Cordialement

Discussions similaires

  1. requete de jointure sous delphi
    Par kaouther dans le forum Bases de données
    Réponses: 1
    Dernier message: 29/12/2005, 11h22
  2. Requete sélection, Jointure (coup de pouce needed)
    Par Odilon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 20/10/2005, 11h48
  3. requete de jointure
    Par linoar dans le forum Langage SQL
    Réponses: 5
    Dernier message: 17/05/2005, 15h55
  4. requete avec jointure & group by
    Par de LANFRANCHI dans le forum Langage SQL
    Réponses: 9
    Dernier message: 27/07/2004, 14h31
  5. requete AVG, jointure et fonction
    Par slim dans le forum Langage SQL
    Réponses: 11
    Dernier message: 01/04/2004, 01h45

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