Bonjour à tous.
L'administrateur avec lequel je travaille tient absolument à sauvegarder certaines données dans une table accès.
Le problème c'est que cette table contient beaucoup de doublons ce qui complique le process suivant, j'ai donc écrit deux requête sous mysql pour nettoyer la table pensant faire la traduction sous accès par la suite.
Le but de ces requêtes est d'identifier les doublons sur le champ [ID GALIA], de copier certaines données des doublons les plus anciens vers le doublon le plus récent et de supprimer les doublons les plus anciens.
Problème : je ne comprends pas comment sont gérées les jointure sur accès et je ne parvient pas a faire fonctionner la requête malgré pas mal de temps passé dessus.
Je n'ai jamais utilisé accès de façon avancé, je suis complètement perdu.
Je vous met ici les deux requêtes.
Les cracks de Acces auraient une piste pour faire fonctionner ces left join sur select?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 UPDATE eleves AS T LEFT JOIN (SELECT Old_num, New_num, TOld.PrenonNom AS Old_pn, TOld.Mp AS Old_mp FROM (SELECT MIN(Numéro) AS Old_num, MAX(Numéro) AS New_num FROM eleves GROUP BY [ID GALIA]a HAVING COUNT(*)>1) AS T LEFT JOIN eleves AS TOld ON TOld.Numéro = Old_num ) AS TL ON T.Numéro = TL.New_num SET T.PrenonNom = TL.Old_pn, T.Mp = TL.Old_Mp WHERE TL.New_num IS NOT NULL; DELETE eleves FROM eleves LEFT JOIN (SELECT T2.Numéro FROM (SELECT [ID GALIA], MAX(Numéro) AS New_num FROM eleves GROUP BY [ID GALIA] HAVING COUNT(*)>1) AS T LEFT JOIN eleves AS T2 ON (T2.Numéro <> T.New_num) AND (T2.[ID GALIA] = T.[ID GALIA]) ) AS TD ON eleves.Numéro = TD.Numéro WHERE TD.Numéro IS NOT NULL;
Merci de votre aide!
Partager