Tri avec plusieurs tables

Résolu/Fermé
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022
- 8 nov. 2020 à 11:31
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
- 15 nov. 2020 à 21:44
Bonjour,
J'ai réalisé une application grâce à Excel avec des macros mais celle-ci devient limité au vue des données injectées. Je souhaite donc passé à Access mais je l'ai jamais utilisé ( c'est pour cela que j'ai fait du Vb avec excel la première fois ).
Je découvre donc access au fur et à mesure et me voici déjà bloqué...
J'ai deux tables :
la première : Table Clipper

La seconde : Table ARM


Je souhaite faire un affichage de ce type de colonnes :
Pièce / N°phase / Désignation Phase / nb heure / nb pièces finies / nb de pièces prélevées / Valeurs

Nb de pièces prélevées et valeurs proviennent de la table ARM et le reste de l'autre table.

Mon lien entre les deux tables :
Date prod = Date prélèvement
Employé = initiale
Centre frais = Centre frais

Pour résumer, Lorsque j'ai la même date, le même centre frais, le même employé, ça me trouve la pièce, le n° de phase et sa désignation et fais la somme du nb heure, du nb de pièce finies, du nombre de pièces prélevées, et des valeurs associées.

J'ai fais des essais de requêtes, mais je n'ai pas obtenu satisfaction. Je souhaite savoir quelle procédure suivre.
Je remercie par avance

Configuration: Windows / Chrome 86.0.4240.183

5 réponses

yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171
Modifié le 8 nov. 2020 à 12:34
bonjour,
ce serait plus simple pour nous si tu donnais la liste des champs par table, en texte, pas en image.
et plus simple pour toi sans caractères spéciaux dans les noms de champs
peut-être ainsi:
SELECT Pièce , N°phase , DésignationPhase, 
       sum(nbheure),  sum(nbpiècesfinies), sum(nbdepiècesprélevées), 
       sum(Valeurs)
FROM Clipper, ARM
WHERE 
Dateprod = Dateprélèvement  and Employé = initiale 
              and Clipper.Centrefrais = ARM.Centrefrais
GROUP BY Pièce , N°phase , DésignationPhase
0
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022

8 nov. 2020 à 16:29
Merci pour ta réponse. Je prends note pour tes conseils.
Je vais essayer, faut-il que je crée des liaisons entre les tables ? Je reviens vers toi ensuite.
0
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171
10 nov. 2020 à 10:15
si tu utilises la requête suggérée, il n'est pas nécessaire de créer des relations.
0
bonjour
oui il faut créer de une relation entre tables
0
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022

14 nov. 2020 à 14:52
Bonjour,
Je reviens sur le sujet après de nombreux essais mais en vain.
Par rapport à la solution ci dessus, le résultat n'est pas les sommes ne sont pas les bonnes comme-ci elles étaient multiplié par le nombre de prélèvement....

Je décide donc de suivre les conseils de yg_be est de vous ré-expliquer mon problème.
J'ai actuellement un logiciel de GPAO qui me crée une liste de production, voici la table que j'injecte dans access : T_Clipper
Ces champs : N°Pointage(Clef primaire), DateProd, RefEmploye, IdMachine,Piece,N°Phase,DesignationPhase,Nbheure,NbPieceBonne

Explication : Tel jour, on produit une pièce sur une machine, par tel employe on fait tant de pièce en tant de temps. Une pièce peut avoir plusieurs phases (ex : 10,20,....)

Ensuite un logiciel de gestion de consommables me donne les consommables prélevés par Machine c'est ma table : T_Arm
Ces champs : N°Prelevement(Clef primaire),DatePrelevement,RefEmploye,IdComposant,QtPrelevee,Valeur,IdMachine

Explication : Tel jour, sur telle machine, l'employé X a prelevé 1 ou plusieurs composants, cela coût tant

Le but final est d'obtenir un état avec une liste avec les champs suivant :
Piece,SommeNbPieceBonnePhaseMax,SommeValeur
ces champ correspondent :
Piece = Toutes les pièces qui apparaissent dans la T_Clipper
SommeNbPieceBonnePhaseMax = après avoir identifié le N°phase maximum par piece (ex : Pour la PC1, la dernière phase (le n°phase maxi) est 20), nous faisons la somme de toutes les pièces bonnes de cette phase.
SommeValeur = La totalité des valeurs prélevées pour cette pièce peu importe les phases.

Premier problème c'est que ma table T_Arm me dit pas que tel prélèvement est réalisé pour tel pièce, tel phase. Le seul lien est : Si DateProd dans T_Clipper = DatePrelevement dans T_Arm et RefEmploye dans T_Clipper = RefEmploye dans T_Arm et IdMachine dans T_Clipper = IdMachine dans T_Arm, ces conditions nous permet donc de lier un prélèvement à une pièce et une phase.

Une fois que j'arrive à faire ce lien, je pense réussir à faire les sommes que je veux pour faire mon état. j'espère avoir été plus clair. Je suis à votre écoute pour toutes remarques si je n'ai pas utilisé la bonne méthodologie.
0
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171
Modifié le 14 nov. 2020 à 15:46
si j'ai compris ce que tu veux obtenir, je suggère de faire deux requêtes, une qui retourne
Piece,SommeValeur
et une autre qui retourne
Piece,SommeNbPieceBonnePhaseMax
.
et ensuite, faire une troisième requête à partir des deux premières (sans calculer de sommes).
0
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022
> yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022

14 nov. 2020 à 16:50
J'ai mis ma base dans un commentaire ci-dessous, voilà ce que je veux obtenir :
0
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171 > Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022

14 nov. 2020 à 17:50
as-tu essayé ma suggestion de faire deux requêtes?
0
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022
> yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022

14 nov. 2020 à 18:29
Non car dans la première requête que tu me propose je ne vois pas comment faire le lien entre piece et somme valeur....
Désolé je crois que je n'ai pas choisi le sujet le plus facile pour me mettre à Access....
0
yg_be
Messages postés
19961
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
8 août 2022
1 171 > Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022

14 nov. 2020 à 18:30
oui, je pense préférable de commencer par des exercices plus simples.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
bonjour
pour mieux etudier ton probleme, peux tu mettre ta base compressé en zip dans un lien avec c joint com sur comment ca marche
0
Berorn
Messages postés
30
Date d'inscription
jeudi 16 février 2017
Statut
Membre
Dernière intervention
5 août 2022

14 nov. 2020 à 16:42
https://www.cjoint.com/c/JKopONs4t6s
Voici ma base compressée, si ça marche
Vous verrez il y a des tables en plus mais c'était pour des essais, elles ne sont peut être pas utiles. Attention des relations existent...
0