Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Pour sécuriser votre compte sur les forums du GeoRezo, nous demandons de changer votre mot de passe.

Vous allez recevoir un message pour effectuer ce changement de mot de passe.

Merci de bien respecter les règles préconisées.

#1 Mon 25 January 2010 10:40

schnesschne
Participant occasionnel
Date d'inscription: 13 Mar 2007
Messages: 21

Selection SQL intersect multi criteres

Bonjour,
Je galère sur une selection SQL qui doit me permettre d'identifier des bâtis (polygones) par rapports a des hauteurs d'eau (polygones)
J'utilise la commande intersect qui me donne un premier resultat mais en y regardant de plus pres, la selection me copie des batiments lorsque celles-ci sont à cheval sur plusieurs hauteurs d'eau.
QUESTION : comment demander a mapinfo qu'il ne me prenne en considération que les valeurs les plus hautes dans mon champs  d'hauteurs d'eau ???
Merci

Hors ligne

 

#2 Mon 25 January 2010 10:48

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Selection SQL intersect multi criteres

Salut,

As tu essayé avec d'autres critères comme Within ou entierly within?
A+
Joël

Hors ligne

 

#3 Mon 25 January 2010 10:58

schnesschne
Participant occasionnel
Date d'inscription: 13 Mar 2007
Messages: 21

Re: Selection SQL intersect multi criteres

oui j'ai bien essayé mais le souci est d'affecter le bati à la valeur la plus haute de mes polygones d'hauteurs d'eau, certains bâtis etant sur 2-3 polygones differents
Pour info j'ai un champ lower et upper correspondant aux classes de hauteurs
@+

Hors ligne

 

#4 Mon 25 January 2010 12:41

benulti
Participant assidu
Lieu: là-bas
Date d'inscription: 5 Sep 2005
Messages: 332

Re: Selection SQL intersect multi criteres

Bonjour,

après cette requête utilisez la fonction "group by" sur l'identifiant de bati ainsi que la fonction d'aggrégation "max" sur la valeur upper de hauteurs d'eau afin de récuperer la valeur la plus élevée pour chaque bati.
Attention cette requête donne un résultat strictement attributaire.

Cordialement
PS : la différence entre intersects et within ne concerne que des problèmes de centroides de sélection.

Hors ligne

 

#5 Mon 25 January 2010 15:26

schnesschne
Participant occasionnel
Date d'inscription: 13 Mar 2007
Messages: 21

Re: Selection SQL intersect multi criteres

Arf, pas facile
J'ai bien utiliser la fonction groupby en passant par "fusion d'objet" identifian mais pour l'agragation de la valeur max je n'y arrive pas
la fenetre me propose, valeur, somme, moyenne
dans valeur j'ai bien essayé de mettre lower=max(lower) mais je n'ai que des 0 en rendu
Je suis dans le flou artistique

Hors ligne

 

#6 Mon 25 January 2010 15:34

Spacejo
Membre
Lieu: Nancy
Date d'inscription: 17 Aug 2008
Messages: 2511

Re: Selection SQL intersect multi criteres

En passant par un "order By" "desc" --> avec tes hauteurs aprés le group by
A+
Joël

Dernière modification par Spacejo (Mon 25 January 2010 15:36)

Hors ligne

 

#7 Mon 25 January 2010 15:36

Daniel
Membre
Lieu: Victoriaville, Québec
Date d'inscription: 6 Sep 2005
Messages: 2028

Re: Selection SQL intersect multi criteres

Salut

Est-ce que votre colonne Upper ou lower est dans votre section COLONNE, en hautre de votre requête SQL?

Daniel


De retour à la géomatique

Hors ligne

 

#8 Mon 25 January 2010 16:33

schnesschne
Participant occasionnel
Date d'inscription: 13 Mar 2007
Messages: 21

Re: Selection SQL intersect multi criteres

Bon j'ai trouvé une solution, c'est peut etre un peu bidouillique mais ça marche
On est d'accord que je pars d'une couche bâti que j'ai intersecté avec mes hauteurs d'eau donc il y a des doublons de bâtis avec des hauteurs d'eau differentes (lower) :

1 - je fais une fusion par champ ID dans une nouvelle table en gardant la meme strucure sans agreger de valeurs
j'obtiens donc un seul bâti, reste a lui affecter la valeur max de mon lower

2 - je fais une mise a jour de ma nouvelle table avec une jointure par les id communs en allant rechercher la valeur max du lower de la table non compilée

et là, miracle !!!

Merci de m'avoir ouvert la voie
Je vais pouvoir reprendre une activité normale et aller prendre du paracétamol wink

Quoique je dois faire une trentaine de carte avec plus de 1 000 batis a chaque fois smile

Dernière modification par schnesschne (Mon 25 January 2010 16:41)

Hors ligne

 

Pied de page des forums

Powered by FluxBB