Solde ligne par ligne [Résolu]

Signaler
Messages postés
165
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
17 avril 2021
-
 oholabi -
Bonjour, j'ai cette requête et je souhaiterais avoir le solde ligne par ligne c'est à dire Montantdebit- montantcredit sur chaque ligne en tenant compte du solde précédent, voici la requête :
SELECT Commandes.idClient, client.nomcomplet, client.adresse, client.tel, client.ville,
Commandes.DateCommande , Commandes.CodeFacture, "Commande"as operation,
Commandes.MontantTTC AS MONTANTDEBIT, Commandes.MontantRegle AS MONTANTCREDIT
FROM client RIGHT JOIN Commandes ON client.idclient = Commandes.idClient
UNION ALL
SELECT Avance.Idlient, client.nomcomplet, client.adresse, client.tel, client.ville,
Avance.DateAvance, "", "Avance",
0, Avance.MontantAvance
FROM client INNER JOIN Avance ON client.idclient = Avance.Idlient
order by DateCommande;

2 réponses

Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021
849
bonjour,
donnons un nom à cette requête, appelons-là det.
essayons ceci:
select d1.idClient, d1.DateCommande, d1.nomcomplet, d1.adresse, d1.tel, d1.ville,
d1.CodeFacture,  d1.operation,  d1.MONTANTDEBIT,  d1.MONTANTCREDIT,
sum(d2.MONTANTDEBIT - d2.MONTANTCREDIT) as solde
from det as d1, det as d2
where d1.idClient = d2.idClient and d1.DateCommande >= d2.DateCommande
group by d1.idClient, d1.DateCommande, d1.nomcomplet, d1.adresse, d1.tel, d1.ville,
d1.CodeFacture,  d1.operation,  d1.MONTANTDEBIT,  d1.MONTANTCREDIT
order by d1.idClient, d1.DateCommande
Messages postés
165
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
17 avril 2021

Bonsoir , je reçois le message suivant: Reference circulaire causé par << det>>
est ce que la requête tient compte d'une période donnée c'est à dire entre deux dates ( datedebut) et (datefin ) , aussi d1 et d2 utilisés dans la requête det représente quoi ?
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021
849
tu as bien nommé
det
la requête que tu as partagée au début de la discussion?
penses-tu que la requête tient compte d'une période donnée?
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021
849 > oholabi
Je ne peux pas t'en recommander parce que je ne connais pas les différentes possibilités.
Peut-être en posant la question sur le forum?

Pour le calcul des soldes, les opérations précédant la période sont prises en compte.
C'est pour cela qu'on ne fait pas la sélection sur la période dans la requête det, on le fait plus tard, après avoir calculé les soldes.
>
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021

Merci j'ai vraiment appris pendant nos échanges et je pense que ça me servira
Merci et à plus
Messages postés
165
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
17 avril 2021
>
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021

SELECT Solde.idClient, Solde.nomcomplet, Solde.adresse, Solde.tel, Solde.ville, Solde.Date, Solde.OPERATION, Solde.CodeFacture, Solde.MONTANTDEBIT, Solde.MONTANTCREDIT, Solde.solde
FROM Solde
WHERE (((Solde.Date) Between [date debut] And [date finale]));
Messages postés
165
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
17 avril 2021
>
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021

jai aussi supprimé leS Champs MontantRegle et MontantReste de la table commande
Messages postés
165
Date d'inscription
vendredi 21 août 2020
Statut
Membre
Dernière intervention
17 avril 2021
>
Messages postés
15513
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
7 mai 2021

Voir en #12 pour la période