Bonjour,
Je ne parviens pas à écrire une requête dont le but est de présenter par compte financier la date de la dernière opération enregistrée dans le journal des opérations pour ce compte et les totaux mensuels en recettes et dépenses pour chacun pour toute l'année.
Je m'explique.
J'ai 3 tables dans la base de données.
La 1ère est le journal des opérations reprenant notamment l'exercice fiscal (texte court, 4), la date de l'opération, le montant (double), le libellé (texte court 33), le compte financier (texte court, 2) et le compte budgétaire (texte court, 3)
La 2ème table contient les identifiants du compte financier : nom court du compte (clé, texte court, 2), nom complet du compte (texte court, 15), ....
La 3ème table contient, par compte financier, des données récapitulatives des opérations périodiques : nom court du compte (texte court, 2), solde_initial (double), opérations du mois (double), etc....
Les 3 tables se relient par le nom court du compte. Il y a actuellement 5 comptes financiers actifs et plusieurs centaines d'opérations enregistrées pour le journal.
Pour dresser l'état, je me base sur une requête simple, à savoir :
Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 SELECT tblc_02_Banques_soldes.CompteBanque, tbl_Banques.NM_COMPLET, tbl_Banques.LIBELLES, tblc_02_Banques_soldes.Exercice, tblc_02_Banques_soldes.Solde_31décembre, tblc_02_Banques_soldes.Solde_depart, tblc_02_Banques_soldes.Ops_01_IN, tblc_02_Banques_soldes.Recettes_01, tblc_02_Banques_soldes.Depenses_01, tblc_02_Banques_soldes.Ops_01_OUT, tblc_02_Banques_soldes.Ops_02_IN, tblc_02_Banques_soldes.Recettes_02, tblc_02_Banques_soldes.Depenses_02, tblc_02_Banques_soldes.Ops_02_OUT, tblc_02_Banques_soldes.Solde_final, tblc_01_Journal.DAT_OPERAT FROM (tbl_Banques INNER JOIN tblc_02_Banques_soldes ON tbl_Banques.NM_REDUIT = tblc_02_Banques_soldes.CompteBanque) INNER JOIN tblc_01_Journal ON tblc_02_Banques_soldes.Exercice = tblc_01_Journal.EXERCICE WHERE (((tblc_02_Banques_soldes.CompteBanque)<"ZZ") AND ((tblc_02_Banques_soldes.Exercice)=Year([Formulaires]![frm_05a_Etats]![txt_LastOPs]))) ORDER BY tblc_02_Banques_soldes.CompteBanque, tblc_01_Journal.DAT_OPERAT DESC;
Tout fonctionnait correctement jusqu'à ce que je tente d'introduire la date de la dernière opération du compte : "tblc_01_Journal.DAT_OPERAT DESC" car au lieu d'avoir 5 fiches, j'en ai maintenant près de 4.000.
J'ai tenté d'ajouter les paramètres TOP n / DISTINCT, .... mais sans meilleur résultat.
Je ne vois pas comment faire ici.
Merci d'avance pour toute aide à ce sujet
Guy
Partager