Requête [Résolu]

Signaler
Messages postés
6
Date d'inscription
mardi 10 décembre 2019
Statut
Membre
Dernière intervention
3 octobre 2020
-
Messages postés
6
Date d'inscription
mardi 10 décembre 2019
Statut
Membre
Dernière intervention
3 octobre 2020
-
Bonjour,
J'aimerai réaliser sous requête Acces, le tableau Excel ci dessous.
Afin d'obtenir dans un champ cumul Annuel l'état du compte dans une année donnée.
Colonne F
NumAn NomLoc SoldePasse SoldeAnnuel Cumul annuel
F4 2020 S… -4187,2 -4 356,00 - 14 951 € SOMME(F4:F13)
F5 2019 S… -2538,59 -4 187,20 - 10 595 € SOMME(F5:f13)
F6 2018 S… -2764,17 -2 538,59 - 6 407 € SOMME(F6:f13)
F7 2017 S… -202,42 -2 764,17 - 3 869 € SOMME(F7:f13)
F8 2016 S… -1040,99 -202,42 - 1 105 € SOMME(F8:f13)
F9 2015 S… 46,53 -1 040,99 - 902 € SOMME(F9:f13)
F10 2014 S… 3,24 46,53 139 € SOMME(F10:f13)
F11 2013 S… 72,94 3,24 092 € SOMME(F11:f13)
F12 2012 S… 16,1467 72,94 0 89 € SOMME(F12:f13)
F13 2011 S… 0 16,15 016 € SOMMEf13)
D'avance MERCI
Cordialement
JCC



Configuration: Windows / Edge 85.0.564.51

12 réponses

Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
bonjour,
as-tu déjà créé la table dans Access?
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
probablement ainsi:
select t1.NumAn as annee, sum(t2.SoldeAnnuel) as cumul
from source as t1, source as t2
where t2.NumAn <= t1.NumAn
group by t1.NumAn
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701 >
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020

@jccorteccia
je t'ai propose une solution, cela t'a-t-il été utile?
Bonjour,
Tu m'a déjà bien dépanné par le passé.
A l'aide d'une requête qui combine des recettes et des dépenses du locataire j'ai crée une table "solde annuel" qui regroupe année après années le solde annuel de chaque locataire.
Pour connaitre le solde à l'année N je dois effectuer le cumul des soldes des années précédentes.
Pour une année donnée Le cumul solde de l'année n-1 + le solde annuel de l'année en cours me donnera le solde de cette année.
Dans ma requête cumul des soldes en actionnant la touche "totaux" j'obtiens pour un locataire donné le total du pour l'ensemble des années. Je voudrais l'avoir année après année.
Espérant avoir été clair, un grand merci par avance
Cordialement
Un exemple vaut mieux qu'un long discours

Champs crées dans acces Champ cumul à créer
180920 2020 Sahihi - 4 356 € - 14 951 €
180919 2019 Sahihi - 4 187 € - 10 595 €
180918 2018 Sahihi - 2 539 € - 6 407 €
180917 2017 Sahihi - 2 764 € - 3 869 €
180916 2016 Sahihi - 202 € - 1 105 €
180915 2015 Sahihi - 1 041 € - 902 €
180914 2014 Sahihi 047 € 139 €
180913 2013 Sahihi 003 € 092 €
180912 2012 Sahihi 073 € 089 €
180911 2011 Sahihi 016 € 016 €
-14 950,51 €
Merci de m'éclairer
Cordialement
BonjouYG_BE
Comme pour les demandes passées, cela fonctionne parfaitement.
J'ai repris dans une base d'essai les éléments utiles, tables, requêtes etc
Et tout va bien.
MERCI, merci, MERCI
Cordialement Cela va nettement améliorer ma programmation
jccorteccia
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
parfait, content d'avoir pu t'aider.
peux-tu marquer la discussion comme résolue?
Bonjour,
Petit complément d'information qui améliorerait encore un peu plus.
La formule à partir d'une table fonctionne, comme faire à partir d'une requête.
J'ai essayé sans succès. Après je marquerai résolu.
Cordialement.
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
qu'as-tu essayé, quel résultat as-tu obtenu?
Bonjour,
Je vais synthétiser.
Dans mon cheminement, je parviens à une requête qui me calcule le "soldeAnnuel dans une requête soldes.
A partir de cette recette soldes je crée une table soldes qui me permet d'avoir le champ solde Annuel et le champ cumul de l'année, à qui j'applique ta formule.
Il serait plus pratique de passer directement à partir de la requête soldes et obtenir le champ cumul.
EX.
select t1.NumAn as annee, sum(t2.SoldeAnnuel) as cumul
from Soldes as t1, Soldes as t2
where t2.NumAn <= t1.NumAn
group by t1.NumAn

Mais où le calcul obtenu est faux ou le solde Annuel et le cumul sont les mêmes ou le programme recherche une base de données.
Je vais continuer à charger, mais tu as certainement une idée.
D'avance MERCI.
Cordialement
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
je comprends très peu:
- comment peux-tu avoir une requête et une table ayant le même nom, "soldes"?
- tu écris que la table soldes a déjà un champ cumul, alors pourquoi vouloir encore le calculer?
- tu ne montres pas la source SQL de la requête soldes
- je ne comprends pas ce que signifie "ou le programme recherche une base de données"
- tu écris "le solde Annuel et le cumul sont les mêmes". où? dans la réponse à quelle requête? lequel est correct?
Je vais essayer d'être plus clair
démarrons à la requête "Soldes", elle est établie.
1) Création à partir de cette requête "Soldes" d'une table "CreaSoldes" à l'aide d'une requête création de table
2) A l'aide de la table "CreaSoldes" et en utilisant ta formule, je crée la requête "CumulSoldes"
3) Je peux intégrer à mon programme les champs de "CumulSoldes"
Est-il possible pour automatiser mieux le programme de supprimer les étapes 2 et 3 pour passer directement de la requête "Soldes" à la requête "CumulSoldes", en utilisant dans ta formule une requête au lieu d'une table.
Cela n'est peut-être pas possible.
Je continue de chercher.
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
as-tu essayé l'exemple en #10?
Bonjour,
Pour faire encore plus simple.
Est ce que la formule
<ital>select t1.NumAn as annee, sum(t2.SoldeAnnuel) as cumul
from source as t1, source as t2
where t2.NumAn <= t1.NumAn
group by t1.NumAn
peut fonctionner avec "source" = une requête
avec "source"= une table cela fonctionne parfaitement
Merci de me répondre
cordialement
Il y avait une erreur de frappe.
Bonjour,
Pour faire encore plus simple.
Est ce que la formule
select t1.NumAn as annee, sum(t2.SoldeAnnuel) as cumul
from source as t1, source as t2
where t2.NumAn <= t1.NumAn
group by t1.NumAn
peut fonctionner avec "source" = une requête
avec "source"= une table cela fonctionne parfaitement
Merci de me répondre
cordialement
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
bien sûr, on peut utiliser une requête comme source.
J'applique la formule que tu m'as fourni
SELECT t1.[Numéro Commun], t1.NumAn AS annee, t1.NomLoc, t1.[Solde Annuel], Sum(t2.[Solde Annuel]) AS SoldAn
FROM [9 - Les Soldes Annuels] AS t1 INNER JOIN [9 - Les Soldes Annuels] AS t2 ON t1.NomLoc = t2.NomLoc
WHERE (((t2.NumAn)<=[t1].[NumAn]))
GROUP BY t1.[Numéro Commun], t1.NumAn, t1.NomLoc, t1.[Solde Annuel], t1.[Solde Annuel]
ORDER BY t1.NumAn DESC;
A partir de la table: [9 - Les Soldes Annuels] et cela fonctionne.

SELECT t1.[Numéro Commun], t1.NumAn AS annee, t1.NomLoc, t1.[Solde Annuel], Sum(t2.[Solde Annuel]) AS SoldAn
FROM [50 - RQ - Compte Annuel Locataires] AS t1 INNER JOIN [50 - RQ - Compte Annuel Locataires] AS t2 ON t1.NomLoc = t2.NomLoc
WHERE (((t2.NumAn)<=[t1].[NumAn]))
GROUP BY t1.[Numéro Commun], t1.NumAn, t1.NomLoc, t1.[Solde Annuel], t1.[Solde Annuel]
ORDER BY t1.NumAn DESC;
A partir de la requête [50 - RQ - Compte Annuel Locataires] Ne fonctionne pas.
Bien évidemment le champ [Solde Annuel] est présent dans la table et la requête.
Je suis un peu perdu.
Merci d'avance.
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
"Ne fonctionne pas" ne me permet évidemment pas de me faire une idée de ce qui ne fonctionne pas.

il serait très utile que tu prennes un peu de temps et d'énergie pour lire ceci: https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code

ce qui t'aurais permis de nous présenter ceci:
SELECT t1.[Numéro Commun], t1.NumAn AS annee, t1.NomLoc, t1.[Solde Annuel], 
      Sum(t2.[Solde Annuel]) AS SoldAn
FROM [50 - RQ - Compte Annuel Locataires] AS t1 
       INNER JOIN [50 - RQ - Compte Annuel Locataires] AS t2 
       ON t1.NomLoc = t2.NomLoc
WHERE (((t2.NumAn)<=[t1].[NumAn]))
GROUP BY t1.[Numéro Commun], t1.NumAn, t1.NomLoc, t1.[Solde Annuel], t1.[Solde Annuel]
ORDER BY t1.NumAn DESC;


je suggère que, avant d'ajouter des champs supplémentaires, tu commences par tester ma suggestion.
et que tu nous montres le résultat obtenu.
Messages postés
6
Date d'inscription
mardi 10 décembre 2019
Statut
Membre
Dernière intervention
3 octobre 2020

Même réponse qu'avant. Pourtant tout me semble logique.

Lorsque j'indique ne fonctionne pas c'est que la requête ne s'ouvre pas et j'ai l'affichage ci-dessous
Sélectionner la source de données
Source de données fichier Source de données machine
Regarder dans document
Affichage de tous mes documents. Comme lorsque j'ouvre mes documents.
Nom de source de données Nouveau
Sélectionner la source de données fichier qui décrit le pilote auquel vous souhaitez vous connecter.
Vous pouvez utiliser toutes sortes de données fichier faisant référence à un pilote ODBC installé sur votre machine
OK Annuler Aide

J'ai lu les codes à première lecture cela me semble hors de mes possibilités mais j'essayerai encore demain.
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701
je pense que tu ne crées pas correctement la requête. peux-tu partager soit des images de ce que tu fais, soit ton fichier, avec la requête sauvée dans le fichier?
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020
701 >
Messages postés
12606
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
13 octobre 2020

il me semble que tu avais eu le même genre de soucis avec la création de requêtes fin 2019. et que tu t'en étais finalemet sorti.
Messages postés
6
Date d'inscription
mardi 10 décembre 2019
Statut
Membre
Dernière intervention
3 octobre 2020

Bonsoir,
Bien que je ne parvienne pas à insérer une image à cet endroit.
Grâce à tes conseils, un peu de lecture, et une meilleure compréhension, je suis enfin arrivé à mes fins.
J'ai une base qui me donne satisfaction.
Peut être d'ici quelque temps j'aurai une idée d'amélioration et bien évidemment si je ne m'en sors pas je reviendrai vers toi.
Un très grand MERCI et bonne continuation, c'est sympa d'aider les autres.