Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 09/07/2011, 20h15   #1
Invité de passage
 
Homme Kylian Kevin
Inscription : juillet 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Kylian Kevin
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 7
Points : 0
Points : 0
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 :
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)
     )
 
 
)
kvkylian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 09h11   #2
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
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+
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 13h52   #3
Invité de passage
 
Homme Kylian Kevin
Inscription : juillet 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Kylian Kevin
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 7
Points : 0
Points : 0
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
kvkylian est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/07/2011, 14h18   #4
Membre émérite
 
Homme Olivier Dehorter
Ingenieur de recherche - Ecologue
Inscription : juin 2003
Messages : 697
Détails du profil
Informations personnelles :
Nom : Homme Olivier Dehorter
Localisation : France

Informations professionnelles :
Activité : Ingenieur de recherche - Ecologue

Informations forums :
Inscription : juin 2003
Messages : 697
Points : 837
Points : 837
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
dehorter olivier est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/07/2011, 15h42   #5
Invité de passage
 
Homme Kylian Kevin
Inscription : juillet 2011
Messages : 7
Détails du profil
Informations personnelles :
Nom : Homme Kylian Kevin
Localisation : France

Informations forums :
Inscription : juillet 2011
Messages : 7
Points : 0
Points : 0
merci olivier
kvkylian est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h33.


 
 
 
 
Partenaires

Hébergement Web