Jump to content
  • 0
Julien Mac

Gestion Des Doublons Sans Lien Sur Lui-Même

Question

Bonjour,

 

Je chercher à gérer les Emails en doublons, je peux utiliser la technique du lien sur la même rubrique afin de savoir si l'adresse Email est en doublon, comme dans cet exemple :

 

Email.fmp12

 

Mais, je me demandais si on pouvait éviter de créer un lien dans le graphe, grâce à une autre technique... :rolleyes:

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Share this post


Link to post
Share on other sites

18 answers to this question

Recommended Posts

  • 0

salut Julien
ou au pire (?) un sql "select count where", mais la performance sur de nombreux enregistrements ....
a essayer

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Email.zip

Share this post


Link to post
Share on other sites
  • 0

Bonsoir Marc,

 

Oui c'est une option, mais ce n'est pas ce que je souhaite, car je veux que l'utilisateur puisse rentrer un doublon et surtout gérer par script un avertissement, etc. Ce qui n'est pas trop possible avec le contrôle de la rubrique.

Share this post


Link to post
Share on other sites
  • 0

Bonsoir Éric,

 

Cela semble marcher nickel !

Merci !

Bon je n'ai encore jamais utilisé ExécuterSQL... :-(

 

Un commentaire sur son fonctionnement :

ExecuterSQL ( "SELECT COUNT(Email) FROM Email WHERE Email = '" & Email::Email & "'" ; "" ; "" )

 

Pourquoi :

Email = '"

Et encore plus pourquoi :

Email::Email & "'"

 

Merci,

Share this post


Link to post
Share on other sites
  • 0

le simple quote ou apostrophe c'est pour encadrer la valeur de l'email en cours.

C'est comme ça que l'on rentre du texte dans le sql.

et le Email::Email c'est pour comparer à l'email de la fiche en cours.

Share this post


Link to post
Share on other sites
  • 0

le principe du select c'est de mettre d'abord le nom de rubrique, puis après le from tu mets la table

Share this post


Link to post
Share on other sites
  • 0

Bonjour Éric,

 

Merci pour tes précisions.

 

SELECT COUNT

= Décompte de la valeur ?

 

SELECT COUNT(Email)

= Décompte de la valeur Email

 

FROM Email

= À partir de la base de données (table) Email

 

WHERE Email = '" & Email::Email & "'"

= comprend pas trop, mais ce serait peut-être Email identique à Email::Email...

 

Je me demande où on peut se documenter (de préférences en français) sur ce sujet.

 

Merci,

Share this post


Link to post
Share on other sites
  • 0

oui ici il y a de la confusion car la table se nomme comme la rubrique, et en l'occurrence il s'agit de la rubrique.
donc le sql va comparer le contenu de la rubrique email à la valeur actuelle de cette rubrique qui est injectée dans le calcul par Email::Email
le résultat du calcul sera textuel pour la partie calcul de l'instruction sql qui deviendra

 "SELECT COUNT(Email) FROM Email WHERE Email = 'tartempion@free.fr'" et qui sera évalué dans chaque enregistrement.
mais le sql sur des milliers d'enregistrements à tendance à être long.
là le calcul va s'opérer sur tous les enregistrements mais avec INNER JOIN ou OUTER JOIN tu peux lier des tables
 

Pour Sql FM
https://fmhelp.filemaker.com/docs/13/fr/fm13_sql_reference.pdf
http://www.leblogfm.fr/post/tag/sql

et généralement

http://sql.developpez.com/

Bonne journée
Edit : tag SQLFM

Share this post


Link to post
Share on other sites
  • 0

Bonjour Éric,

 

Merci à toi pour ces liens.

Share this post


Link to post
Share on other sites
  • 0

Dernière question : si je conserve la technique du lien sur la même rubrique, puis-je utiliser un autolien de type x ?

 

Email.fmp12

 

Cela semble ne pas marcher...

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Email.fmp12

Share this post


Link to post
Share on other sites
  • 0

Là au boulot je n'ai pas de version supérieure à 10 et donc je ne peux voir ton fichier.
mais ta demande d'un autolien en X pour les doublons est curieuse puisque cela te sélectionne tous les enregistrements,
alors que le lien en = te sélectionne uniquement les doublons et c'est le but recherché non ?
Ou alors tu cherche à faire autre chose ?

Share this post


Link to post
Share on other sites
  • 0

Mon but était d'avoir un seul lien afin de gérer, aussi bien, des doublons en "Prénom Nom" que des doublons par adresse Email.

Je pensais, bêtement semble, t-il qu'un autolien en x m'aurait permis d'éviter d'avoir deux liens...

Share this post


Link to post
Share on other sites
  • 0

ok, je me doutais d'un truc comme ça :)
c'est toujours possible de dénombrer dans ce cas avec

occurrences ( ¶ & substitute ( liste (emailEnX) ; ¶ ; "¶¶" ) & ¶ ; ¶ & email & ¶ )

ou

decomptevaleurs ( ValeursFiltre ( liste ( emailEnX ) ; email ) )

mais biensur la performance du calcul sera liée au nombre d'enregistrements pour constituer la liste.

Share this post


Link to post
Share on other sites
  • 0

Merci Éric !

Share this post


Link to post
Share on other sites
  • 0

Bonjour, je rebondis sur le sujet pour savoir s'il est possible de vérifier s'il y a des doublons dans une rubique sans passer par un lien d'une autre table ? 

MErci :)

Share this post


Link to post
Share on other sites
  • 0

Bonsoir,

Oui, il y a plusieurs possibilités, par une recherche, par script avec une boucle… Tout dépend un peu de la finalité de la chose et de la fréquence de cette recherche de doublons

Share this post


Link to post
Share on other sites
  • 0

Bonjour,

 

Comme le souligne Christophe, tout dépend de la finalité.

Que veut dire "Je chercher à gérer les Emails en doublons" ?

 

Pour avoir la liste de toutes les valeurs contenues dans le champ "Email" : SELECT Email FROM LaTable
Pour les compter : SELECT COUNT ( Email ) FROM LaTable

Pour avoir la liste de toutes les valeurs SANS LES DOUBLONS : SELECT DISTINCT Email FROM LaTable
Et le nombre : SELECT COUNT ( DISTINCT Email ) FROM LaTable

 

 

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...