Multi-Comptage dans dans une requête

Fermé
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022 - 15 juin 2022 à 00:54
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022 - 16 juin 2022 à 15:09
Bonjour,

Avant tout, voir l'imprime écran ci dessous réalisé sur Excel.
le premier tableau correspond à 1/
et ce que je voudrais en 2/



Je rencontre un problème qui me prend la tête depuis un bon moment et je ne trouve pas la solution.
Je m'explique.
J'ai une table (table-1) avec une liste de données qui sert de liste de choix dans une autre table (table-2).
La Table-2 contient différents champs dont deux champs Oui/Non (valide et actif) (ces deux champs sont des données qui n'ont rien à voir l'une avec l'autres)
1/ J'ai créé une requête pour compter chaque ligne correspondant à la liste de choix.
Jusque là, c'est parfait et fonctionne très bien.
Maintenant cela ce complique.

2/ J'ai fait la même requête en reprenant la valeur de la Table-1 (liste de choix), puis la ligne attachée à cette liste de choix de la Table-2 que je compte (comme pour 1/) et un dernier champ oui/non (valide) avec critère: Oui
là encore cela fonctionne très bien, mais je voudrais que même les lignes de la liste de choix n'ayant pas de données (donc vide ou zéro) soit quand même affichée sans rien dedans
Par exemple, Ligne 1 (Valide et Actif vide), Ligne 2 (Valide vide), Ligne 6 (Actif vide).
Comme expliqué ci-dessus, seules les lignes ayant des données de Table-2 s'affiche et pas les autres lignes.

Mon second problème qui rejoint le premier.
Si j'arrive à régler le premier problème je voudrais afficher le second critère Oui/Non lui aussi avec le critère Oui dans la même requête (Quitte à passer par plusieurs requête).
La finalité étant de présenter cela dans un formulaire tabulaire

Et même l'idéal serait de mettre les 3 tableaux dans une seule requête, mais bon !!!!

Alors cela fonctionne très bien sur Excel et je pourrais m'en contenter, mais sur Access n'est une nouvelle chose pour moi que je ne parviens pas à régler seul et je voudrais juste savoir comment on fait, pour peu que se soit possible.

En vous remerciant par avance

Configuration: Windows / Chrome 102.0.0.0

4 réponses

yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
15 juin 2022 à 11:26
bonjour,
Je n'ai pas compris.
Peux-tu partager les sources SQL de tes requêtes Access?
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
16 juin 2022 à 00:12
Bonsoir,

Voici en pj la bd.
Dans l'affichage de formulaire je voudrais juste que la totalité de la liste soit affichée dans le SF triés, même les champs vides.
Comme dans l'exemple Excel ci-dessus.

Haiiii, je ne trouve pas comment ajouter une pièce jointe pour envoyer la BD

Merci de m'avoir répondu
Bonne soirée
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
16 juin 2022 à 10:11
Une source SQL d'une requête Access, c'est du texte. Il n'est pas utile de partager la bd, il est préférable de bien décrire la situation.
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
16 juin 2022 à 13:36
Bonjour yg_be,


Je voudrais pouvoir reproduire sur Access ces tableaux Excel.
Comme vous le constatez, la différence est que pour les tableaux vert et rouge les lignes vides n'apparaissent pas et moi je voudrais qu'elles soient visibles, comme sur Excel

Et la seconde chose, mais la je ne sais pas si c'est possible, avoir les deux tableaux "Valide" et "Actif" dans la même requête pour en faire un seul formulaire (comme tableau Excel vert et rouge)


Voici dessous les source SQL des trois requêtes

Source SQL de la requête attaché au sous-formulaire 1 ((bleu) R-detail):

SELECT [T-liste2].[ID-liste2], [T-liste2].liste2, Count([T-detail2].liste2) AS CompteDeliste2
FROM [T-liste2] INNER JOIN [T-detail2] ON [T-liste2].[ID-liste2] = [T-detail2].liste2
GROUP BY [T-liste2].[ID-liste2], [T-liste2].liste2;


Source SQL de la requête attaché au sous-formulaire 2 ((vert) R-trie-par-valide):

SELECT [T-detail2].liste2, [T-detail2].valider, Count([T-detail2].valider) AS comptevalide, [T-liste2].liste2
FROM [T-liste2] INNER JOIN [T-detail2] ON [T-liste2].[ID-liste2] = [T-detail2].liste2
GROUP BY [T-detail2].liste2, [T-detail2].valider, [T-liste2].liste2
HAVING ((([T-detail2].valider)=True));



Source SQL de la requête attaché au sous-formulaire 3 ((rouge) R-trie-par-actif):

SELECT [T-detail2].liste2, [T-detail2].[actif], Count([T-detail2].[actif]) AS compteactif, [T-liste2].liste2
FROM [T-liste2] INNER JOIN [T-detail2] ON [T-liste2].[ID-liste2] = [T-detail2].liste2
GROUP BY [T-detail2].liste2, [T-detail2].[actif], [T-liste2].liste2
HAVING ((([T-detail2].[actif])=True));

Bonne journée
0
yg_be Messages postés 22692 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 16 avril 2024 1 471
16 juin 2022 à 14:55
Si je comprends bien, tu as ceci:
table [T-liste2], avec les champs [ID-liste2], liste2
table [T-detail2] avec les champs liste2, valider, actif

Peut-être:
SELECT [T-liste2].[ID-liste2], [T-liste2].liste2, Count([T-detail2].liste2) AS CompteDeliste2
sum(iif(actif,1,0)) as compteactif, sum(iif(valider,1,0)) as comptevalide
FROM [T-liste2] INNER JOIN [T-detail2] ON [T-liste2].[ID-liste2] = [T-detail2].liste2
GROUP BY [T-liste2].[ID-liste2], [T-liste2].liste2;
0
Ollam Messages postés 77 Date d'inscription jeudi 18 avril 2013 Statut Membre Dernière intervention 15 août 2022
Modifié le 16 juin 2022 à 15:09


Oui, c'est cela.
Voici le détail ci-dessus.
0