Solde par mois tout en gardant le solde du mois précédent

Fermé
faddi-amor Messages postés 4 Date d'inscription jeudi 20 avril 2017 Statut Membre Dernière intervention 21 avril 2017 - 20 avril 2017 à 13:46
faddi-amor Messages postés 4 Date d'inscription jeudi 20 avril 2017 Statut Membre Dernière intervention 21 avril 2017 - 21 avril 2017 à 01:19
Bonsoir à tous.

je suis confronté a un soucis avec une de mes requêtes, j'aimerais avoir le solde des recettes et depenses et cela par mois tout en gardant le solde du mois précédent qui sera ajouter au mois en cours.

voici ma requete:

SELECT M.mvt_date, COALESCE( R.cr_ref, D.cD_ref ) AS reference, COALESCE( R.cr_motif, D.cD_motif ) AS motif, COALESCE( R.cr_montant, 0 ) AS recette, COALESCE( D.cd_montant, 0 ) AS depense, @cumul := @cumul + COALESCE( R.cr_montant, 0 ) - COALESCE( D.cd_montant, 0 ) AS cumul FROM Mouvement M CROSS JOIN ( SELECT @cumul:=0 ) tmp LEFT JOIN entree E ON M.mvt_id = E.mvt_id LEFT JOIN carnetrecette R ON E.cr_id = R.cr_id LEFT JOIN sortie S ON M.mvt_id = S.mvt_id LEFT JOIN carnetdepense D ON S.cd_id = D.cd_id WHERE month(m.mvt_date)=month(now())


mais quand je proccède ainsi il fait juste le solde du mois en cours sans tenir compte du mois anterieur

puis-je sollicité votre aide SVP

2 réponses

yg_be Messages postés 22720 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 23 avril 2024 1 476
20 avril 2017 à 20:35
bonjour,
pourrais-tu expliquer ce que contiennent tes tables, comment elles sont liées et quelles sont tes index?
ainsi qu'expliquer ce que tu souhaites obtenir, peut-être en donnant un exemple?
0
faddi-amor Messages postés 4 Date d'inscription jeudi 20 avril 2017 Statut Membre Dernière intervention 21 avril 2017
21 avril 2017 à 01:19
la table contient des montant de type Bigint.
j'utilise MySql comme BD.
voici la capture d’écran de ce code ci dessous:

SELECT M.mvt_date, COALESCE( R.cr_ref, D.cD_ref ) AS reference, COALESCE( R.cr_motif, D.cD_motif ) AS motif, COALESCE( R.cr_montant, 0 ) AS recette, COALESCE( D.cd_montant, 0 ) AS depense, @cumul := @cumul + COALESCE( R.cr_montant, 0 ) - COALESCE( D.cd_montant, 0 ) AS cumul FROM Mouvement M CROSS JOIN ( SELECT @cumul:=0 ) tmp LEFT JOIN entree E ON M.mvt_id = E.mvt_id LEFT JOIN carnetrecette R ON E.cr_id = R.cr_id LEFT JOIN sortie S ON M.mvt_id = S.mvt_id LEFT JOIN carnetdepense D ON S.cd_id = D.cd_id


il fais le cumul des recettes et dépenses en affichant a la dernières ligne le solde de la caisse.
mais quand j'essais d'afficher pour le mois en cours a travers ce code:

SELECT M.mvt_date, COALESCE( R.cr_ref, D.cD_ref ) AS reference, COALESCE( R.cr_motif, D.cD_motif ) AS motif, COALESCE( R.cr_montant, 0 ) AS recette, COALESCE( D.cd_montant, 0 ) AS depense, @cumul := @cumul + COALESCE( R.cr_montant, 0 ) - COALESCE( D.cd_montant, 0 ) AS cumul FROM Mouvement M CROSS JOIN ( SELECT @cumul:=0 ) tmp LEFT JOIN entree E ON M.mvt_id = E.mvt_id LEFT JOIN carnetrecette R ON E.cr_id = R.cr_id LEFT JOIN sortie S ON M.mvt_id = S.mvt_id LEFT JOIN carnetdepense D ON S.cd_id = D.cd_id WHERE month(m.mvt_date)=month(now())

il affiche juste les recettes et depenses du mois en cours sans tenir compte du solde des mois anterieurs
0