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

SQL Firebird Discussion :

Problème de jointure


Sujet :

SQL Firebird

  1. #1
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut Problème de jointure
    Bonjour à tous,

    J'ai les tables

    NUMERO_CLIENT
    DATE
    TAUX_REMISE
    TAUX_ESCOMPTE


    FACTURE_LIGNE
    NUMERO
    NUMERO_FACTURE
    NUMERO_TVA
    QUANTITE
    PRIX_UNIT
    PRIX_TOTAL


    TAXE
    NUMERO
    TAUX_TVA


    REGLEMENT
    NUMERO
    DATE
    MONTANT


    REGLMENT_LIGNE
    NUMERO
    NUMERO_REGLEMENT
    NUMERO_FACTURE


    COUPON_REDUCTION
    NUMERO
    NUMERO_FACTURE
    MONTANT


    Je veux récuperer les clients qui non pas réglés leurs factures
    ainsi que le montant dû.
    j'utilise cette requette mais j'ai quelque problème de doublon.

    merci

    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     
    SELECT
      C.NOM,  
      CAST  (  SUM ((LF.MONTANT_TOTAL * ((100 - F.TAUX_REMISE) / 100) * ((100 - F.TAUX_ESCOMPTE) / 100))  * (1 + (T.TVA_TAUX / 100)))
     - (COALESCE ( SUM (RG.MONTANT),0) + COALESCE (SUM(P.MONTANT),0) ) AS DECIMAL (10,2)) AS DU
     
    FROM
     FACTURE F 
    LEFT OUTER  JOIN CLIENT C  ON
      (C.NUMERO = F.NUMERO_CLIENT)
    INNER JOIN FACTURE_LIGNE LF ON
      (F.NUMERO = LF.NUMERO_FACTURE)
    INNER   JOIN TAXE T ON
      (LF.NUMERO_TVA = T.NUMERO )
    LEFT OUTER  JOIN REGLEMENT_LIGNE LRG ON
     ( F.NUMERO = LRG.NUMERO_FACTURE)
    LEFT OUTER  JOIN REGLEMENT RG ON
      (RG.NUMERO = LRG.NUMERO_REGLEMENT)
    LEFT OUTER JOIN COUPON_REDUCTION P ON
     (F.NUMERO = P.NUMERO_FACTURE)
     
    GROUP BY
     C.NOM
     
    HAVING
      (                 
        (
         CAST  ( SUM ((LF.MONTANT  * ((100 - F.TAUX_REMISE) / 100) * ((100 - F.TAUX_ESCOMPTE) / 100))  * (1 + (T.TVA_TAUX / 100))) AS DECIMAL (10,2))
         )
         >
         (
         COALESCE ( SUM (RG.MONTANT)  + SUM(P.MONTANT),0)
         )
     
     
    )

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    Bonjour

    je ne suis pas sur de bien répondre à ton problème, mais tu indiques des problèmes de doublons...

    si c'est bien cela ton soucis, et que les doublons sont stricts (même nom, même du), tu dois utiliser la clause DISTINCT après ton SELECT

    a+
    Merci d'ajouter un sur les tags qui vous ont aidé

  3. #3
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Bonjour olivier,
    Le problème de doublon est que si il ya un plusieurs réglement pour la même
    facture.

    Exp :
    facture 100
    1 reglement 50
    2 reglement 30

    Le solde dû est normalement de 20 alors que j'obtiens un résultat de 120.
    merci

  4. #4
    Membre expérimenté
    Homme Profil pro
    Ingenieur de recherche - Ecologue
    Inscrit en
    Juin 2003
    Messages
    1 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingenieur de recherche - Ecologue

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 146
    Points : 1 412
    Points
    1 412
    Par défaut
    dans ta requête le group by s'effectue sur le nom, et non la facture

    donc j'ai du mal à voir ou va se situer les doublons par rapport aux factures


    j'aurais tendance à faire les sommes dues par facture (dans un sous requete) et ensuite à sommer les résultats de cette sous-requête par nom
    Merci d'ajouter un sur les tags qui vous ont aidé

  5. #5
    Candidat au Club
    Homme Profil pro
    Inscrit en
    Juillet 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juillet 2011
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    merci olivier

Discussions similaires

  1. Problème de jointure de tables
    Par AurelBUD dans le forum Langage SQL
    Réponses: 6
    Dernier message: 20/04/2005, 16h27
  2. Probléme de jointure
    Par Ajrarn dans le forum Langage SQL
    Réponses: 14
    Dernier message: 24/02/2005, 14h57
  3. Vraisemblable problème de jointure
    Par pimousse76 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 23/02/2005, 15h34
  4. [MS Access] Problème de jointure
    Par Erakis dans le forum Langage SQL
    Réponses: 3
    Dernier message: 07/02/2005, 21h15
  5. Problème de jointure ?!
    Par ebaynaud dans le forum Langage SQL
    Réponses: 8
    Dernier message: 03/11/2004, 11h27

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