Probléme sur une requéte [Résolu]

Signaler
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
-
ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
-
Bonjour,

J'ai un PB avec une requête sous ACCESS 2016.
En bas de la pièce jointe, le résultat.
En 1, j'ai deux mois donc 2 lignes. C'est bon.

En 2, je devrais avoir deux mois, donc 2 lignes,
mais je n'ai que le mois 1 qui sort.
Ma liaison entre R_EnrBASE et 3_HorsBudget est bonne.
Par contre, je n'ai pas eu de dépense en Hors budget sur les 2 mois.

Ma question:
Y'a t'il une manipulation que je puisse faire afin que même avec un Hors Budget à 0,
je puisse avoir mes 2 mois en résultat.

Merci d'avance pour vos réponses.
Cordialement

6 réponses

Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533
bonjour, je pense que tu peux y arriver en cliquant avec le bouton de droite sur la relation entre les deux tables (la ligne dans l'image 2), éditer les propriétés de la relation, puis éditer le type de jointure, et ensuite préciser que tu veux tous les enregistrements de R_EnrBASE.
ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
Re bonsoir
J'ai bien les 2 mois qui s'affiche, mais comme tu le vois dans l'image, j'ai une case vide. Donc, lorsque je veux calculer , le résultat ne s'affiche pas. Si tu as une idée? Merci d'avance.
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533 > ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020

cela me semble normal qu'elle soit vide. que voudrais-tu à la place de la case vide?
nous pourrions communiquer plus facilement si tu partageais la syntaxe SQL de ta requête.
tu pourrais peut-être utiliser
NZ(HB2,0)
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
Bonjour yg_be

PAIES-HB2=RestPAIES



Mon SQL
SELECT [3_PaiesMensuel].MOIS, [3_PaiesMensuel].PAIES, [3_DepenMensuel].HB2, [PAIES]-[hb2] AS RestPAIES
FROM 3_DepenMensuel INNER JOIN 3_PaiesMensuel ON [3_DepenMensuel].MOIS = [3_PaiesMensuel].MOIS
GROUP BY [3_PaiesMensuel].MOIS, [3_PaiesMensuel].PAIES, [3_DepenMensuel].HB2, [PAIES]-[hb2];

Je précise que je n'utilise pas le code SQL, car je ne connais pas du tout.

Merci d'avance pour ta réponse.
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533
suggestion, utiliser
NZ(HB2,0)
:
SELECT [3_PaiesMensuel].MOIS, [3_PaiesMensuel].PAIES, NZ(3_DepenMensuel.HB2,0) as HB2, 
[PAIES]-NZ(3_DepenMensuel.HB2,0) AS RestPAIES
FROM 3_DepenMensuel INNER JOIN 3_PaiesMensuel 
ON [3_DepenMensuel].MOIS = [3_PaiesMensuel].MOIS
 ;
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
J'ai fais un copier/coller, mais problème syntaxe
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533
on dirait que le point est devenu une virgule.
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
Non, c'est moi qui t'es induit en erreur, j'avais essayé de remplacer le point par une virgule lors de mon essai et j'ai transmis la mauvaise image.
Je te mets le bon imprimecran.
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533
peut-être en remplaçant la virgule par un point-virgule?
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
Avec le ; cela ne fonctionne pas, donc en essai, j'ai renommé 3_DEPENMensuel en DepenMensuel et ça marche.

SELECT [3_PaiesMensuel].MOIS, [3_PaiesMensuel].PAIES, Nz(DepenMensuel.HB2,0) AS HB2, [PAIES]-[hb2] AS RestPAIES
FROM DepenMensuel INNER JOIN 3_PaiesMensuel ON DepenMensuel.MOIS = [3_PaiesMensuel].MOIS;

il y'a beaucoup de chiffres après la virgule, mais ils sont là et le calcul est bon.
Je vais revoir mon post (2) et essayer d'intégrer NZ(HB2,0).
Je te tiens au courant par la suite.
Merci encore, je progresse doucement, mais surement.
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21
Bonsoir yg_be
J'ai essayé de comprendre, etc....mais bon, ça marche pas mon truc.
Je te mets le détail en image.

Je te mets le SQL que j'ai essayé de faire

SELECT ADepenMensuel.MOIS, [DEP]-[HB2]-[VAC2], NZ(DEP-HB2-VAC2.depreel,0) as depreel,
ADepenMensuel.DEP, NZ(DEP.DEP,0) as DEP,
ADepenMensuel.HB2, NZ(HB2.HB2,0) as HB2,
AdepenMensuel.VAC2, NZ(VAC2.VAC2,0) as VAC2,
FROM AdepenMensuel;

Par contre, je ne voudrais pas abuser.
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533
il y a une virgule en trop avant le FROM
ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21 > yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020

Bon, j'ai enlevé la virgule, c'est pire.
Je te mets une copie de ma base. https://www.cjoint.com/c/JBfmXjkkuwj
Tu pourras m'expliquer les erreurs que j'ai commis.
J'ai enlevé tous ce qui n'est pas utile pour mon problème.
Ne te prends pas le chou, et merci pour ta patience.
yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020
533 > ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020

1) le fichier n'inclut pas la requête qui pose problème, et la requête que tu montres en #11 n'est plus compatible avec le fichier, tu as fait plusieurs modifications entre-temps (AdepenMensuel n'existe pas).
suggestion:
SELECT ZEnrBASE.MOIS, Sum(ZEnrBASE.DEBIT) AS DEP, nz(AHorsBudget.HB2,0) as HB2, nz(AVacances.VAC2,0) as AVC2, 
Sum(ZEnrBASE.DEBIT)-nz(AHorsBudget.HB2,0)-nz(AVacances.VAC2,0) as depreel
FROM AVacances RIGHT JOIN (AHorsBudget RIGHT JOIN ZEnrBASE ON AHorsBudget.MOIS = ZEnrBASE.MOIS) ON AVacances.MOIS = ZEnrBASE.MOIS
GROUP BY ZEnrBASE.MOIS, AHorsBudget.HB2, AVacances.VAC2;

2) en général, je comprends ce que tu fais, et je ne le ferais pas ainsi. difficile d'être plus précis, comme tu n'as pas expliqué le résultat final auquel tu voudrais arriver.
3) probablement pour bien présenter tes données, tu ajoutes, via des requêtes, des colonnes par catégorie ou groupe de catégorie. c'est, en général, à éviter.
4) même si j'ajoutais des champs spécifiques aux catégories, je n'utiliserais pas de requête comme tes requêtes "A...", je ferais cela plutôt dans la requête "Z", en utilisant la fonction iif, ou bien dans une requête qui fait un résumé mensuel sur base de la requête Z, en y ajoutant des colonnes spécifiques aux catégories.
5) pour éviter les problèmes d'arrondi, tu peux peut-être essayer de déclarer les montants comme des "monétaires" dans la table.
ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21 > yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020

Effectivement, à force de faire des essais, je sais plus trop ou j'en suis.
Je vais remettre tout cela à plat en tenant compte de tes observations.
C'est un budget perso que j'essaye de faire pour moi, mais surtout me familiariser avec ACCESS.
Merci encore de t'être pencher sur mon PB.
Je vais clore la discussion et relancerais une autre discussion si je galère.
Bonne fin d’après-midi.
ChrisPF13
Messages postés
210
Date d'inscription
dimanche 7 octobre 2018
Statut
Membre
Dernière intervention
5 février 2020
21 > yg_be
Messages postés
9695
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
22 février 2020

Ton SQL fonctionne très bien, je vais l'étudier afin d'essayer d'en comprendre le fonctionnement.
Merci encore