|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
Bonjour,
Je me bas depuis des heures sur une requête qui me permet d'avoir une liste des factures non réglées (Totalement et/ou partiellement)Je possèdes deux tables: Facture: nfacture,dfacture,montant reglement : nreg,nfacture,montreg,rettva,retsource à savoir une facture doit être réglée selon cette formule: montant +retenue à la source + retenue sur tva la retenue à la source et retenue de tva accompagnent toujours le 1er réglement J'utilise cette requête qui me permet d'avoir seulement les factures partiellement réglées (celles totalement non réglée manquent) Code :
- Les deux tables appartiennent à deux bases (DBASE III Plus) différentes. - C'est une requête avec Delphi 7 pour un état Qreport Merci de votre aide |
||
|
|
00
|
|
|
#2 | |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
bonsoir,
Citation:
![]() il faut rechercher les numéros de factures qui n'ont pas de correspondance dans la table des règlements RE.nfacture IS NULL. Dans un HAVING, on doit s'en sortir avec Max:
__________________
L'informatique fait son grand retour au lycée... |
|
|
20
|
|
|
#3 | |||
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
Bonsoir F-Leb,
Au début je vous remercie pour l'intérêt que vous portez à ma question. J'ai posté ma question ici par ignorance En fait Citation:
Citation:
Je constate que c'est la seule lacune actuellement: La requête affiche parmi les factures partiellement réglées et non réglées et aussi celles réglées ![]() Que faire en plus de Citation:
en voici un aperçu: (seulement pour clarifier la Chose aux débutants comme moi )![]() D'ailleurs une autre question si vous permettez: comment remplacer par un Zéro les valeur Null (en SQL) ? |
|||
|
|
00
|
|
|
#4 | ||
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
J'ai trouvé la solution
En fait je me suis inspiré de la réponse de Monsieur F-Leb et j'ai modifier la requête en ajoutant la fonction Max devant FA.netapayer qui est le montant de la facture (en rouge) Code :
Seulement, comment remplacer par un Zéro les valeur Null (en SQL) ? J'ai essayer coalesce qui m'a été refusé !! |
||
|
|
00
|
|
|
#5 | ||
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
oh non !!!
J'ai trop vite parlé... en fait le résultat comprend encore quelques factures (bizarrement pas toutes) dont le reste à payer = 0 !!! ![]() Encore de l'aide SVP ! Voici la requête rectifiée: Code :
|
||
|
|
00
|
|
|
#6 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
N’aurais-tu pas un problème d’arrondi dans tes sommes ?
Du genre, Code :
__________________
L'informatique fait son grand retour au lycée... |
||
|
00
|
|
|
#7 |
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
Salut,
Pour la table en .DBF le champ netapayer est un Numérique avec 3 Dec. Le décimal configuré dans paramètres régional de windows est le point (.) En fait le formatage d'affichage n'arrondi pas les valeurs mais formate seulement les valeurs avec des zéro à droite, genre 14.2 qui s'affichera 14.200 (### ##0.000) Dans aucun emplacement j'arrondi les valeurs |
|
|
00
|
|
|
#8 | |||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 415 ![]() |
Bonjour,
la condition, Code sql :
Citation:
Code sql :
fa.netapayer = sum(re.remisfact+re.retsource+re.rettva+re.montant) Je me trompe peut-être avec cette histoire d’arrondi mais je ne vois pas ce que ça pourrait être d’autres, le formatage comme tu dis ne concerne que l’affichage et DBIII fait peut-être des erreurs de calculs à la nième décimale. Pour lever définitivement le doute, fait un test avec : Code sql :
__________________
L'informatique fait son grand retour au lycée... |
|||||
|
00
|
|
|
#9 | ||||
|
Futur Membre du Club
![]() Med Ali MezianeInscription : juillet 2006 Messages : 40 ![]() |
Bonjour,
Monsieur Fabien encore merci pour votre aide. En fait votre analyse m'a aider à confirmer que Dbase III du moins via le moteur ODBC résout mal l'égalité entre deux valeurs décimales et puisque la fonction ABS m'a été refusée dans Having (je ne sais pas d'ailleurs pourquoi) j'ai modifier votre astuce afin d'avoir cette fois une liste vraiment correcte qui ne contient aucune valeur = à zéro. Puisque les décimaux représentes les millimes (le 1/1000) j'ai ajouter 0.001 au test comme suit: Code :
Monsieur Fabien encore merci ![]() ![]() Je remet ici la requête finale afin de permettre aux lecteurs d'avoir une discussion complète ![]() Code :
|
||||
|
|
10
|
Copyright © 2000-2012 - www.developpez.com