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)
     )
 
 
)