|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir,
J'ai une table avec un champs qui recense des modèles de machines qui sont tombées en panne.(champs Texte) Je souhaiterais faire une requête où état afin de calculer le taux de pannes par modèles de machines. Si je ne me trompe pas, je pense qu'il faut (diviser le nombre d'enregistrements du modèle concerné par le nombre total d'enregistrements *100) Puis le répéter pour tous les modèles ?? Seulement je ne sais pas comment réaliser cette opération by SQL ? D'avance merci pour votre aide. |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
|
|
00
|
|
|
#3 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir,
La table rassemble les éléments d'interventions de techniciens. Je recense les champs tels que: Nom_Tech / Date_intervention / H_début_intervention / H_fin_intervention / ville / Modèle_machine / Organe_HS etc... Le champ pour lequel je souhaiterais calculer le taux d'intervention par Modèle_machine, est de type texte. le contenu ressemble à ceci : Peugeot / Renault / Citroën / ect.. Merci |
|
|
00
|
|
|
#4 | ||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
Code :
Peugeot: 3 interventions sur 3=100% Renault : 2 interventions sur 3=67% Citroën : 1 intervention sur 3=33% J’ai bien compris ? |
||
|
00
|
|
|
#5 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Fragglerick et Fabien,
Juste une astuce que j'ai découverte récemment. Requête R1 - ajoutes TaTable (SELECT) ; - passes en mode regroupement par ∑ (GROUP BY) ; - sélectionnes Count(*) (SELECT). ==> une seule ligne comportant le total général. Requête R2 - ajoutes TaTable (SELECT) ; - passes en mode regroupement par ∑ (GROUP BY) ; - sélectionnes Marque, Count(*) (SELECT). ==> une ligne par marque avec son total. Requête R3 - ajoutes R2 (SELECT) ; - ajoutes R1 (SELECT) ; => SANS LIEN ENTRES ELLES (pas de JOIN) : c'est ça, l'astuce... - sélectionnes R2.Marque, (R2.Count(*)/R1.Count(*))*100. ==> une ligne par marque avec le total de la marque, le total toutes marques et le %. Pas testé...
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#7 | |||||
|
Expert Confirmé Sénior
![]() ![]() Fabien Enseignant Inscription : janvier 2009 Messages : 2 410 ![]() |
bonjour,
Citation:
Modele(idModele, Modele_Machine, ...) avec le schéma: Intervention-∞---------1-Modele Avec la requête: Code sql :
Avec la requête: Code sql :
SELECT Count(*) AS NbrTotalIntervention FROM Intervention ; Pour obtenir le taux, on fait la division: NbInterventionModele/NbrTotalIntervention Ce qui donne la requête finale: Code sql :
|
|||||
|
00
|
|
|
#8 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonsoir et merci à tous les deux de vous pencher sur mon pb
![]() Je suis neuf en Access et autant vous dire que je rame pas mal .. je progresse à mon rythme ![]() Dans un premier temps, j'essaie d'appliquer la méthode à Richard; => J'ai créer un champ supplémentaire dans ma table pour pouvoir calculer plus simplement tous les enregistrements. La requête R1 fonctionne bien ==> une seule ligne comportant le total général nombre total d'enregistrement, OK j'y suis arrivé ! La requête R2 fonctionne bien ==> J'ai bien une ligne par marque avec le total de pannes s'y afférent, OK j'y suis arrivé ! En revanche, je ne vois pas comment procéder pour R3 ? Dois-je créer un champ supplémentaire de calcul ? Je ne vois pas exactement comment s'articule la formule de calcul dans R3 ? Quand j'aurais réussi, je passerai à la méthode de Fabien Merci à vous les gars. |
|
|
00
|
|
|
#9 | |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Fragglerick,
Citation:
Dans R1, renommes "TotalGeneral" le champ Count(*) qui doit être Expr1. Dans R2, renommes "TotalMarque" le champ Count(*) qui doit être Expr1. Dans R3, sélectionnes les champs "Marque", "TotalMarque", "TotalGeneral" et saisis % : (TotalMarque/TotalGeneral)*100.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
|
00
|
|
|
#10 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour,
Non seulement ça fonctionne mais en plus j'ai tout saisie !! ![]() Merci infiniment à tous les deux !!! |
|
|
00
|
|
|
#11 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour à tous
Ma direction à été agréablement surprise lorsque je lui ai présenté mes statistiques toutes fraiches, mais...Et oui parce qu'il y a un mais !!Plutôt fier de moi malgré tout " -Je vous corrige ça et je reviens dans quelques minutes ..." 2 jours sont passés, ils m'attendent encore Voilà ce que j'ai tenté de faire, en vain, selon le "modèle" de Richard: Requête R1 - Date_inter => en critère (Date entre jj/mm/aa et jj/mm/aa) - Date_inter Count(*) - Marque ==> autant de lignes que de dates ou chaque dates = le total d'interventions par marques. Requête R2 * ajoutes R1 - Total_inter somme(*) - Marque ==> Une ligne par Marque avec le Total Requête R3 * ajoutes R1 - TotalEnregistrement dans la période sélectionnée ==> Donne le total des enregistrements(jours) dans la requête R1 (jours sélectionnés) Requête R4 * ajoutes R2 et R3 -TotalEnregistrement -Total_inter - Marque - (TotalEnregistrement/Total_inter)/100 Bien entendu le résultat est faut !! Je ne suis pas certain que ma façon d'opérer soit des plus académiques, selon vous pour quelles raisons ? Mon manque d'expérience ne me permets pas d'avoir une vision "plus large" sur les possibilités offertes à la réalisation de ce "filtre". D'avance merci |
|
|
00
|
|
|
#12 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Fragglerick,
Pas certain que ce soit cela que te demande ta direction... Peux-tu donner un exemple du résultat final que tu veux obtenir (la liste des colonnes, comme si tu voulais générer un fichier Excel) ? Je me doute, un peu, de ce qu'il faut (je peux me tromper), mais c'est toi qui doit faire cette démarche.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#13 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour Richard.
Tu as raison, ce que me demande ma direction c'est plutôt le taux de pannes par mois et par machines. Vaste programme pour moi qui ne travaille sur ACCESS que depuis 2 mois ... Ainsi, je me dis que si j'arrive à calculer le taux de pannes sur une période donnée (1 mois) via une requête, je n'aurais qu'a multiplier les requêtes pour tous les mois de l'année et enfin les cumuler sur un état. Visiblement je m'y prends mal Je vous joint un modèle de tableau au format (.xls) que je souhaiterais réaliser sous forme d'état. Merci à vous |
|
|
00
|
|
|
#14 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Suggestion :
Requête R1 - ajoutes TaTable (SELECT) ; - passes en mode regroupement par ∑ (GROUP BY) ; - sélectionnes Année(TaDate)&Mois(TaDate), Count(*) (SELECT). ==> 1 ligne par AnnéeMois avec le total correspondant. Requête R2 - ajoutes TaTable (SELECT) ; - passes en mode regroupement par ∑ (GROUP BY) ; - sélectionnes Année(TaDate)&Mois(TaDate), Marque, Count(*) (SELECT). ==> une ligne par AnnéeMois et par marque avec le total correspondant. Requête R3 - ajoutes R2 (SELECT) ; - ajoutes R1 (SELECT) ; - lies R2 à R1, via AnnéeMois avec flèche à droite (LEFT JOIN) ; - sélectionnes R2.Marque, R2.Count(*), R1.Count(*), (R2.Count(*)/R1.Count(*))*100. ==> une ligne par AnnéeMois et par marque avec le total correspondant, le total par ANnéeMois, toutes marques et le %. Pas testé...
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#15 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour Richard,
Une fois de plus Tout semble fonctionner correctement ![]() Très honnêtement je n'aurais pu m'en sortir sans ton aide Encore une question: Existe t-il une astuce pour rendre la date au format std => mm/yyyy ? En l'état actuel, la date qui sous la forme "yyyym" ne me permet pas de trier comme je le souhaiterais... Merci merci ..! |
|
|
00
|
|
|
#16 |
|
Expert Confirmé
![]() Inscription : juillet 2007 Messages : 2 176 ![]() |
Bonjour Fragglerick,
Je ne connais pas VBA, et assez mal les fonctions associées, notamment celles concernant les dates. Jettes un coup d'oeil dans l'aide Access qui est très bien conçue, dans les tutoriaux de ce forum, qui l'est non moins, dans la FAQ et dans ce forum : il y a beaucoup de discussions sur ce sujet.
__________________
Dis-nous et à bientôt, Richard. ---------------------------------------------------------------------------------------------- . et permettent aux forumeurs de cibler leur recherche dans une discussion : n'hésitez pas à voter !
|
|
|
00
|
|
|
#17 |
|
Membre à l'essai
![]() Steph Technicien maintenance Inscription : janvier 2011 Messages : 83 ![]() |
Bonjour Richard,
Je vais voir si je trouve une piste du côté du forum VBA. Je mets ce thread en résolu mais je n'ai pas encore présenté les stats que m'a demandé ma direction... D'ici que ça change encore ... Je garde "ta carte de visite" sous le coude Merci infiniment Richard ! |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com