Partage
  • Partager sur Facebook
  • Partager sur Twitter

quasi doublon pour access

Sujet résolu
19 juin 2022 à 0:38:50

Bonsoir 

je n'arrive pas à traduire ce code mysql de recherche de quasi doublon vers access

DELETE B
FROM temp_plaquette A, temp_plaquette B
WHERE A.id > B.id
            AND A.nom LIKE CONCAT('%',B.nom,'%')
            AND A.adresse1 LIKE CONCAT('%',B.adresse1,'%') 
            AND A.code = B.code
            AND A.ville = B.ville;


Pouvez vous m'aider ?

Merci.

  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2022 à 11:06:00

Bonjour,

Tu as une erreur avec Access ?

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
19 juin 2022 à 11:10:21

bonjour,

oui je n'arrive pas à traduire cette requette mysql en access :

DELETE *
FROM temp_plaquette INNER JOIN temp_plaquette AS B
ON temp_plaquette.id > B.id
            WHERE temp_plaquette.nom = B.nom
            AND temp_plaquette.adresse1 = B.adresse1
	    AND temp_plaquette.code = B.code
            AND temp_plaquette.ville = B.ville;	

merci.

  • Partager sur Facebook
  • Partager sur Twitter
19 juin 2022 à 15:31:04

Avec un minimum de recherche, je tombe sur ce sujet : sql - How to delete in MS Access when using JOIN's? - Stack Overflow

As-tu essayé le DISTINCTROW ?

-
Edité par Benzouye 19 juin 2022 à 15:31:18

  • Partager sur Facebook
  • Partager sur Twitter
Seul on va plus vite, ensemble on va plus loin ... A maîtriser : Conception BDD, MySQL, PHP/MySQL
20 juin 2022 à 16:35:42

bonjour,

j'ai réussi.

Le distinctrow fonctionne avec le select mais pas avec le delete

voir les doublons :

SELECT DISTINCTROW a.nom, a.prenom, a.ville
FROM temp_plaquette AS a INNER JOIN temp_plaquette AS b ON a.id <> b.id
WHERE a.nom = b.nom
AND a.prenom = b.prenom
and a.code = b.code;

supprimer les doublons :

DELETE *
FROM temp_plaquette AS a
WHERE id <> (
    SELECT MAX(id)
    FROM temp_plaquette AS b
    WHERE a.nom = b.nom
AND a.prenom = b.prenom
and a.code = b.code);

et les quasi :

DELETE *
FROM temp_plaquette AS a
WHERE id <> (
    SELECT MAX(id)
    FROM temp_plaquette AS b
    WHERE a.nom like '*' & b.nom & '*'
    AND a.adresse1 LIKE "*" & B.adresse1 & "*"
	AND a.code = B.code
    AND a.ville = B.ville);





-
Edité par Anthony12- 20 juin 2022 à 16:37:23

  • Partager sur Facebook
  • Partager sur Twitter