Bonjour,
J'ai essayé de faire une requête qui recherche les doublons dans une table . Dans la ligne critère j'ai entré
'In (SELECT [COULEUR] FROM [TABLE_COULEURS) As Tmp GROUP BY [COULEUR] HAVING Count(*)>1 )'
ce qui donne le code SQL :
SELECT "ID", "COULEUR" FROM "TABLE_COULEURS" WHERE "COULEUR" = 'In (SELECT [COULEUR] FROM [TABLE_COULEURS) As Tmp GROUP BY [COULEUR] HAVING Count(*)>1 )'
L'exécution de la requête ne donne aucun doublon alors que j'ai sciemment introduit 2 couleurs identiques.
Si quelqu'un a un idée je suis preneur ! merci d'avance.
PS:Je fais cet essai sur une exemple simple pour pouvoir l'appliquer à une Base réelle.
Bonjour
fricard Claude wrote
J'ai essayé de faire une requête qui recherche les doublons dans une
table . ...
Si quelqu'un a un idée je suis preneur ! merci d'avance.
Une idée et une proposition : suivre la FAQ
https://wiki.documentfoundation.org/FR/FAQ/Base/136
Cordialement
Pierre-Yves
Suite...
J'ai validé un peu vite...
Quelques précisions:
- Ton critère est mis entre quote et donc... c'est un texte, il n'est pas
interprété.
- Je te suggèrais la FAQ car ta requête, quand elle fonctionnera te listera
tous les enregistrements en double... mais ce ne sera pas simple de
supprimer ; tu devras les prendre un par un.
La solution de la FAQ permet de tout supprimer d'un coup.
Cordialement
Pierre-Yves
Bonjour à tous
Merci Pierre-Yves. J'ai adapté le code donné dans la FAQ... /Base/136 à ma base et ça fonctionne.
Pour mon information lorsque tu dis :/"Ton critère est mis entre quote et donc... c'est un texte, il n'est pas interprété" /.
Pour rappel la commande : SELECT "ID", "COULEUR" FROM "TABLE_COULEURS" WHERE "COULEUR" = 'In (SELECT [COULEUR] FROM [TABLE_COULEURS) As Tmp GROUP BY [COULEUR] HAVING Count(*)>1 )'
est-ce la quote avant In: *'In* et en fin de ligne: *)'*
Lorsque je les enlève ça ne change rien.
Claude
Bonjour
fricard Claude wrote
J'ai adapté le code donné dans la FAQ... /Base/136 à
ma base et ça fonctionne.
Ok
fricard Claude wrote
Pour mon information lorsque tu dis :/"Ton critère est mis entre quote
et donc... c'est un texte, il n'est pas interprété" /.
Pour rappel la commande : SELECT "ID", "COULEUR" FROM
"TABLE_COULEURS" WHERE "COULEUR" = 'In (SELECT [COULEUR] FROM
[TABLE_COULEURS) As Tmp GROUP BY [COULEUR] HAVING Count(*)>1 )'est-ce la quote avant In: *'In* et en fin de ligne: *)'*
Lorsque je les enlève ça ne change rien.
Oui, il s'agit des quotes (simples) devant :
'In (SELECT...
et derrière :
Count(*)>1 )'
Si tu les enlèves tu dois aussi retirer le "=" devant In (et faire cela
en édition "SQL" de la requête. Appliqué à la base de la FAQ:
<http://nabble.documentfoundation.org/file/n4040421/Doublon1.png>
Dès lors tu pourras repasser en mode ébauche:
<http://nabble.documentfoundation.org/file/n4040421/Doublon2.png>
Cordialement
Pierre-Yves
Super ! merci Pierre-Yves
J'apprends un peu chaque jour ....
Claude