#1 Mon 21 September 2009 16:29
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
problème classement valeur sous mapinfo
bonjour,
j'ai un souci que je n'arrive pas à résoudre.
J'ai une couche qui comporte 100 000 objets. ces objets ont attaché en .dat leur identifiant leur X et leur Y
Ils sont dans un certains ordre.
J'aimerais les classer par leur valeur X puis Y croissante .
j' obtiendrais alors sur la 1ere ligne l'objet au X et Y le plus faible et sur la derniere ligne l'objet au X et Y le plus fort.
Comment faire ce tri, excel n'acceptant que 65000 lignes...
merci d'avance pour votre aide
Hors ligne
#2 Mon 21 September 2009 16:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Salut,
As tu essayé avec du SQL dans la FMB (order by)?
A+
Joël
Hors ligne
#3 Mon 21 September 2009 16:37
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
Re: problème classement valeur sous mapinfo
non mais je ne connais pas trop la syntaxe exacte sous mapbasic
si tu pouvais me conseiller
merci d'avance
Hors ligne
#4 Mon 21 September 2009 16:38
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Tu pourras faire un ASC ou un DESC que sur un champs il me semble
Code:
SELECT * FROM "nom de table" ORDER BY "nom de colonne" ASC
A+
Joël
Hors ligne
#5 Mon 21 September 2009 16:41
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Et non je dis des C-----IES tu peux le faire
-->
Code:
SELECT * FROM "nom de table" ORDER BY "nom de colonne1" ASC, "nom de colonne2" ASC
Dernière modification par Spacejo (Mon 21 September 2009 16:42)
Hors ligne
#6 Mon 21 September 2009 16:44
- jean-francois Behm
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 212
- Site web
Re: problème classement valeur sous mapinfo
Bonjour,
si j'ai bien compris, il faut faire un tri sur 2 colonnes en même temps : le x et le y .
Faire un tri sur la colonne x puis sur le y ( order by x, y) ne répond pas à la problématique, il me semble.
Il faudrait donc concaténer (assembler) le x et le y dans une 3ème colonne (la fonction str$() permet de convertir en caractère le x et le y sinon il fait une addition) et trier par cette colonne dans une sélection SQL :
Code:
select id, x, y, str$(x)+str$(y) FROM ta_table ORDER BY 4 desc
Puis enregistrer ce résultat en tant que nouvelle table (menu Fichier/Enregistrer Table Sous...).
Bon courage
Dernière modification par jean-francois Behm (Mon 21 September 2009 16:52)
Hors ligne
#7 Mon 21 September 2009 16:49
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
La requète SQL donne un champs croissant sur les X puis sur les Y.
---> http://sql.1keydata.com/fr/sql-order-by.php
Hors ligne
#8 Mon 21 September 2009 16:52
- jean-francois Behm
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 212
- Site web
Re: problème classement valeur sous mapinfo
En fait, la solution de Spacejo fonctionne aussi, je me triture la tête pour rien ...
Hors ligne
#9 Mon 21 September 2009 16:58
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Merci Jean François, ta soluce m'ouvre des perspectives
Cela enrichit la base de connaissances
Hors ligne
#10 Mon 21 September 2009 17:10
- jean-francois Behm
- Participant assidu
- Lieu: Toulouse
- Date d'inscription: 5 Sep 2005
- Messages: 212
- Site web
Re: problème classement valeur sous mapinfo
bonjour,
j' obtiendrais alors sur la 1ere ligne l'objet au X et Y le plus faible et sur la derniere ligne l'objet au X et Y le plus fort.
En fait, la question est : que veux-tu faire ?
Le tri par x puis y ne se fait que par x (mêm en concatenant).
Veux-tu trier les objets par la distance à l'origine (x=0, y=0) :
Code:
select id, x, y, distance(0,0,x,y,"m") From ta_table Order by 4
Hors ligne
#11 Mon 21 September 2009 17:35
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
Re: problème classement valeur sous mapinfo
en effet les fonctions précitées ne classent que par x
ce que je souhaite obtenir c'est le meme résultat que si je prenais un tableau excel et que je lui demandais de trier par X puis par Y cela me donnerait le X min1 par rapport au min Y1 puis le Xmin2 par rapport au min Y1
Dernière modification par RAIMBAULT (Mon 21 September 2009 17:39)
Hors ligne
#12 Mon 21 September 2009 17:47
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Dans excel, il me semble --> les cellules ne sont pas liées donc tu peux trier par X puis par Y tu auras un tri des X avec Xmin ----> Xmax et un tri par Y avec Ymin ----> Ymax mais dans une base de données le X et lié avec Le Y donc un tri ascendant sur le X va te donner Xmin (avec son Y) ---> Xmax (avec son Y)
Si tu as des doublons dans tes X alors là le tri par Y se fera (je ne sais pas si je suis assez clair là)
A+
Joël
Dernière modification par Spacejo (Mon 21 September 2009 17:51)
Hors ligne
#13 Mon 21 September 2009 17:50
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
Re: problème classement valeur sous mapinfo
mais si je selectionne sous excel
le tableau en entier les x et y sont liés .
Dernière modification par RAIMBAULT (Mon 21 September 2009 17:51)
Hors ligne
#14 Mon 21 September 2009 17:53
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Que donne la requète SQL que je t'ai donnée?
Hors ligne
#15 Mon 21 September 2009 18:03
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
Re: problème classement valeur sous mapinfo
elle marche mais ne trie pas comme je le souhaiterais...
en fait pour comparer je le fais sur un fichier de 10 000 lignes . ce qui se passe c'est que j'ai des fichiers mapinfo ou les objets sont dans un certains ordre
et d'autres fichiers surfer (logiciel 3d) qui correspondent aux memes objets mais dans un ordre different
pour le fichier de 10 000 lignes exporté depuis mapinfo en .mif/mid je l'ouvre sous blocnote je fais 2 routine (remplacer , par tabulation) puis je l'ouvre sous excel et effectue mon tri
puis je prend les données qui m'interresse dans surfer et je les colle je retrie selon l'identifiant pour retomber sur l'odre de mapinfo et je reimporte et le tour est joué
sauf quand il y a plus de 65 000 lignes
Hors ligne
#16 Mon 21 September 2009 19:36
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: problème classement valeur sous mapinfo
Bonjour
Je m'immisce juste pour dire qu'à la lecture ce sujet est un peu incompréhensible...
Pour essayer de comprendre, prenons l'exemple d'une table MI de 3 lignes:
pt1 Xmoyen Ymin
pt2 Xmax Ymoyen
pt3 Xmin Ymax
Quel es le tableau que l'on souhaite obtenir après le tri ???
Hors ligne
#17 Mon 21 September 2009 19:50
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Effectivement avec un exemple c'est plus clair:
pt1 Xmoyen Ymin
pt2 Xmax Ymoyen
pt3 Xmin Ymax
pt4 Xmin Ymoyen
La requète que j'ai indiquée au dessus fait un tri sur X puis Y
pt4 Xmin Ymoyen
pt3 Xmin Ymax
pt1 Xmoyen Ymin
pt2 Xmax Ymoyen
A+
Joël
Dernière modification par Spacejo (Mon 21 September 2009 19:56)
Hors ligne
#18 Mon 21 September 2009 22:13
- Maurice
- Membre
- Lieu: Montpellier
- Date d'inscription: 5 Sep 2005
- Messages: 5331
Re: problème classement valeur sous mapinfo
Voilà... et MI comme Excel feront la même chose (sauf à perdre la relation avec les identifiants pt1, pt2,...)
Hors ligne
#19 Tue 22 September 2009 09:36
- matieu_dumo
- Participant actif
- Lieu: Questembert
- Date d'inscription: 15 Mar 2006
- Messages: 135
- Site web
Re: problème classement valeur sous mapinfo
Bonjour,
J'ai parcouru rapidement le post, pour ma part, quand je suis sous excel et que je dois manipuler des tables supérieures à 65000 lignes je les divise en plusieurs onglets. Pour 100 000 lignes : 2 onglets.
Bon courage
Hors ligne
#20 Tue 22 September 2009 10:26
- RAIMBAULT
- Participant occasionnel
- Date d'inscription: 13 Feb 2007
- Messages: 20
Re: problème classement valeur sous mapinfo
"J'ai parcouru rapidement le post, pour ma part, quand je suis sous excel et que je dois manipuler des tables supérieures à 65000 lignes je les divise en plusieurs onglets. Pour 100 000 lignes : 2 onglets."
dans ce cas est il possible sous excel de trier des colonnes sur 2 onglets?
c'est - à -dire que si une valeur est sur le deuxieme onglet mais qu'après classement elle doive être sur le premier
imaginons une faible valeur, qui serait sur le deuxieme onglet, si je classe les données par ordre croissant, cette faible valeur devrait se retrouver dans les premieres lignes, mais si elle est sur le deuxieme onglet excel serait il capable de mettre cette faible valeur sur l'onglet 1? ou alors met il cette faible valeur dans les premières lignes de l'onglet 2
Hors ligne
#21 Tue 22 September 2009 10:31
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: problème classement valeur sous mapinfo
Salut,
Une petite question, sous quelle forme sont tes données de départ:
J'ai une couche qui comporte 100 000 objets. ces objets ont attaché en .dat leur identifiant leur X et leur Y
Tu as des tables? --> Il nous faudrait plus de précisions.
Hors ligne
#22 Tue 22 September 2009 13:20
- Pierre Dolez
- Participant assidu
- Lieu: Proville
- Date d'inscription: 14 Aug 2008
- Messages: 519
- Site web
Re: problème classement valeur sous mapinfo
Bonjour,
J'ai fait le même raisonnement que J.F. Behem et Maurice.
Sauf si des objets ont strictement la même valeur en X, le tri en Y n'a pas vraiment de sens. Une solution intermédiaire serait par exemple de créer les classes pour les valeurs de X, par exemple tous les mètres, tous les 10 mètres. Alors seulement le classement par Y croissant, pour chaque classe de X aura un sens.
Hors ligne