Pages: 1
- Sujet précédent - [MAP BASIC 7.0] Supprimer doublons par colonne de référence - Sujet suivant
#1 Wed 04 June 2008 12:28
- Fabius
- Participant actif
- Date d'inscription: 19 Mar 2008
- Messages: 130
[MAP BASIC 7.0] Supprimer doublons par colonne de référence
Bonjour à tous et à toute.
une question me taraude aujourd'hui : à savoir l'élimination de doublon par affectation de distance. Plus clairement j'ai créé grace a un distancier deux zones autour de deux communes, le probleme c'est que ces deux communes étant proches certaines autres communes ou iris (cela dépend de l'étude) sont situés sur les deux zones. Cependant j'ai une variable distance qui me permet de trier les communes dans un premier temps par nom puis par distance. Par quelle manip pourrais je supprimer les communes en double en tenant compte de la distance (gardrr la plus proche) ?
Merci d'avance
Hors ligne
#2 Wed 04 June 2008 17:04
- Gérard parcoli
- Participant actif
- Date d'inscription: 9 Jan 2007
- Messages: 95
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Bonjour,
Comment sont calculés les distances (ligne droite , routier) ? En ligne droite les Voronoi pourraient arbitrer... a condition de rajouter un troisieme centre 'fictif' très éloigné de la France.
Autrement, comment sont structurés vos distanciers (en deux tables, en une seule) et leurs données ?
Si vous etes sur deux tables distincts,
- Avec la commande Table, mettre à jour colonne basculez la distance d'un distancier vers l'autre,
- Selectionnez (par SQL) les enregistrements ou la distance originale est supérieur à la distance associé : supprimez le résultat,
- meme chose sur l'autre table.
Hors ligne
#3 Mon 09 June 2008 14:07
- Fabius
- Participant actif
- Date d'inscription: 19 Mar 2008
- Messages: 130
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Bonjour,
En fait mon distancier est une table avec le point de départ comme premiere colonne (donc plusieurs points de départ) les noms des communes en deuxieme colonnes et en troisieme la distance entre le point de départ et la commune de la ligne.
Seulement voila je voudrais éliminer les communes en doubles et pour cela éliminer celle dont le champ distance est le plus gros (rattaché la commune au point de départ le plus proche)
Hors ligne
#4 Mon 09 June 2008 16:52
- Gérard parcoli
- Participant actif
- Date d'inscription: 9 Jan 2007
- Messages: 95
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Bonjour,
En trois coups :
1/ Trouver les distances les plus faibles pour chaque origine :
Code:
Select Origine, min(Distance) from Distancier group by Origine into PlusProches
2/ Ajouter la distance la plus proche de chaque origine à la table originale
Dans le menu Mettre à jour colonne :
* Mettre à jour : la table original (le distancier)
* Utilise une colonne : la selection faite précédment 'PlusProches' (jointure Origine = Origine)
* Colonne a mettre a jour : ajouter une colonne tempo
* Calculer valeur de min(Distance)
3/ Selectionner toutes les origines ou la distance est differente à la colonne temporaire
Code:
Select * from Distancier where Distance <> _COL2 into Asupprimer ou Select * from Distancier where Distance <> COL4 into Asupprimer
Travaillez sur une copie de votre distancier.
Hors ligne
#5 Mon 09 June 2008 16:56
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Ma réponse classique... Excel !!
Mais puisqu'il y a [MAP BASIC 7.0] en balise, il va falloir se creuser pour trouver une ou une série de requête qui fasse ça
Vu les explications... un petit exemple des données en capture d'écran ferait le plus grand bien
[EDIT MAurice] Aarrgh... grillé par Gérard !! Reste à trouver en 2, voire en un ...
Hors ligne
#6 Tue 10 June 2008 11:37
- Fabius
- Participant actif
- Date d'inscription: 19 Mar 2008
- Messages: 130
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Bonjour,
merci pour vos réponses, mais je ne comprend pas le raisonnement. je vous mets un screen pour mieux epliquer mon propos:
[img]http://img501.imageshack.us/img501/2870/screencm0.jpg[/img]
La colonne départ correspond au lieu d'ou le distancier part (ici des id) , arrivé correspond au codepost des communes compris dans le distancier puis suive leur distance en temp et en km. Le pb c'est que certaines communes sont dans les zones de plusieurs id, le but serait de supprimer ceux ou celle les plus loins et donc rattacher la commune à l'id dont elle est la plus proche
Dernière modification par Fabius (Tue 10 June 2008 11:43)
Hors ligne
#7 Tue 10 June 2008 13:47
- Gérard parcoli
- Participant actif
- Date d'inscription: 9 Jan 2007
- Messages: 95
Re: [MAP BASIC 7.0] Supprimer doublons par colonne de référence
Le raisonnement est le suivant :
Détecter la distance la plus proche pour chaque Depart et créer une table Depart - Distance la plus proche, ou chaque Depart est unique
Ensuite, réassocier la distance la plus proche aux départs d'origine, on aura donc d'associé à chaque départ d'origine la distance minimale par rapport à toutes les arrivées de ce meme depart.
A partir du moment ou on connait cette distance minimal, on peut estimer que si la distance minimal est différente de la distance de l'enregistrement, c'est qu'il n'est pas le plus proche...
Ci dessous les étapes en reprenant vos informations :
1/ Trouver les distances les plus faibles pour chaque origine :
Code:
Select Depart, min(Distances) from SCREEN group by Depart into PlusProches
min(distances) = calcul de la distance minimal pour tout les départs identiques
2/ Ajouter la distance la plus proche de chaque origine à la table originale
Dans le menu Mettre à jour colonne :
* Mettre à jour : la table SCREEN
* Utilise une colonne : la selection faite precedement 'PlusProches' (jointure Depart = Depart)
* Colonne a mettre a jour : ajouter une colonne temporaire
* Calculer valeur de min(Distances)
3/ Selectionner toutes les origines ou la distance est differente à la colonne temporaire
Code:
Select * from Screen where Distances <> COL4 into Asupprimer
A ce point vous avez de selectionné tous les enregistrements quin sont les paires les plus éloignées : si vous supprimez cette selection, ce qui restera sera les paires les plus proches.
Travaillez sur une copie de votre table Screen.
Hors ligne
Pages: 1
- Sujet précédent - [MAP BASIC 7.0] Supprimer doublons par colonne de référence - Sujet suivant