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

GEODATA DAYS 2024

#1 Wed 01 December 2004 20:31

Virginie Girault
Invité

Champ maxi et mini d'une table

De: V. Girault
Bonjour,

Me voila de nouveau dans une impasse... mais je dois encore me compliquer la vie comme d'habitude. Il s'agit de trouver dans une table la valeur maxi et mini d'un champ de type entier. Je n'arrive pas a obtenir le resultat escompte, il doit y avoir un soucis dans la boucle. L'un d'entre vous aurait-il un petit algo salvateur ? Mon algo fonctionne au debut, mais apres, ca ne va plus... Merci beaucoup.

 

#2 Wed 01 December 2004 20:31

Christophe Barbier
Invité

Re: Champ maxi et mini d'une table

Bonjour,

Pourquoi ne pas utiliser une instruction SQL ?

Select Max(MonChamp), Min(MonChamp) From MaTable Into sel_ValMinMax
Fetch First From sel_ValMinMax
valMax = sel_ValMinMax.Col1
valMin = sel_ValMinMax.Col2

Cordialement,

Christophe Barbier, I²G
- Division Systeme -
christophe.barbier@texte-a-enlever.i2g.fr

 

#3 Fri 24 July 2009 13:48

Seb18
Participant occasionnel
Lieu: Bourges
Date d'inscription: 17 Jul 2009
Messages: 10

Re: Champ maxi et mini d'une table

Bonjour là-d'dans !

Je resors le sujet car je me pose également ce type de question.



Je dispose de plusieurs données :
- une foultitude de points avec coordonnées X, Y, Z (issus d'un MNT ; 1 point tous les 25 m) ;
- une BD de plans d'eau référencés X et Y (avec chacun plusieurs infos diverses et variées pas bien utiles dans mon cas).


Ce que j'aimerais bien réussir à faire (et que mes employeurs aussi aimeraient bien que je fasse, faut avouer) :
- établir une zone tampon de 25 m autour de chaque plan d'eau de superficie supérieure à XX ha ;
- déterminer le Z min et le Z max de chaque zone tampon, puis établir une hauteur H (H=Zmax-Zmin).


Ce que j'ai pu faire jusque-là (je débute à l'échelle d'un plan d'eau seulement, histoire de bien comprendre comment ça va fonctionner) :
- établir une zone tampon ;
- créer une table avec les points du MNT dans ma zone tampon (avec la requête 'Entirely Within') : j'ai donc une liste de points référencés X, Y et Z dans une zone de 25 m autour de mon plan d'eau.

Bon ça, c'est cool. Mais maintenant il me faut trouver Zmin et Zmax.

J'ai ainsi fouillé un peu sur le forum et testé la requête proposée dans le message précédent par C. Barbier, et j'obtiens alors le message "Variable valMin non définie."

J'ai donc essayé de trouver des requêtes : en bidouillant (y a pas d'autre mot, vraiment) avec les fonctions 'Maximum' et 'Minimum' ; puis dans le menu déroulant 'agréger' j'ai trouvé 'Min' et 'Max'. Mais comme dans les deux cas je n'ai aps trop compris comment m'en servir, hé bien ça n'a rien donné...

S.O.S. hmm



Seb


Je sers l'État et c'est ma joie  ^^'

Hors ligne

 

#4 Fri 24 July 2009 14:33

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

Re: Champ maxi et mini d'une table

Bonjour Seb
J'ai une solution rapide mais il existe certainement une solution plus "intelligente".
Si vous sélectionnez vos points dans votre zone tampon, vous faites Sélection - Statistiques, vous aurez vos valeur min et max.  Il suffit de les entrer dans votre base de données. 

Bon ça fonctionne pour 1, 2, 10 et même 20 polygones mais si vous en avez beaucoup, ça pourrait être long.  Je suis certain qu'avec ce que je viens de mentionner, quelqu'un trouvera une façon SQL de la faire.  Ou même une façon FMB. 
C'est jusqu'en ce moment, mon cerveau est un peu au ralenti.....
Mais l'idée de base est là...

Daniel


De retour à la géomatique

Hors ligne

 

#5 Fri 24 July 2009 15:07

Seb18
Participant occasionnel
Lieu: Bourges
Date d'inscription: 17 Jul 2009
Messages: 10

Re: Champ maxi et mini d'une table

Mais vous savez Daniel, par chez moi, ces temps-ci, avec le vent qu'on a, les plus efficaces restent les cerveaux lents :p

MERCI BEAUCOUP A VOUS ! smile
(je patiente activement en attendant quelqu'un qui connaitrait une solution plus experte)

Dernière modification par Seb18 (Fri 24 July 2009 15:08)


Je sers l'État et c'est ma joie  ^^'

Hors ligne

 

#6 Fri 24 July 2009 17:46

Maurice
Membre
Lieu: Montpellier
Date d'inscription: 5 Sep 2005
Messages: 5331

Re: Champ maxi et mini d'une table

Seb18 a écrit:

...et j'obtiens alors le message "Variable valMin non définie."...


Il suffit de faire précéder les lignes de code de C. Barbier (prévues pour être utilisées dans la FMB) de Dim valMin As Float et Dim valMax As Float ...

Hors ligne

 

#7 Mon 27 July 2009 13:10

Seb18
Participant occasionnel
Lieu: Bourges
Date d'inscription: 17 Jul 2009
Messages: 10

Re: Champ maxi et mini d'une table

Yes, merci beaucoup Maurice ! smile


Par contre je me vois dans l'obligation de continuer mon questionnement humhum

- Considérons que j'aie 100 plans d'eau à étudier. Puis-je déterminer valMin et valMax pour chacun des plans d'eau, en utilisant la commande pour l'ensemble de ma couche plan d'eau ? C'est-à-dire sans réaliser 100 fois la commande à la main.

- Si cela est possible, me serait-il possible d'ajouter automatiquement ces deux valeurs dans la table qui référencie mes plans d'eau ? En d'autres termes : quand j'utilise ma commande, j'obtiens deux colonnes 'Min(CoordZ)' et 'Max(CoordZ)' dans la sélection 'sel_valMinMax', et je souhaiterais pouvoir ajouter ces deux nouvelles colonnes à ma table existante 'plando' directement pour chacun des 100 plans d'eau. Faisable ??

En gros à la fin j'aurais une table avec mes 100 plans d'eau qui ressemblerait à (en gras ce que j'ai déjà dans la table existante, en italique souligné les données que je souhaite ajouter automatiquement à ma table) :

identifiant / commune / X / Y / surface / Max(CoordZ) / Min(CoordZ)


Auquel cas je m'approcherais fort du bonheur lol

Dernière modification par Seb18 (Mon 27 July 2009 13:11)


Je sers l'État et c'est ma joie  ^^'

Hors ligne

 

#8 Mon 27 July 2009 16:01

Seb18
Participant occasionnel
Lieu: Bourges
Date d'inscription: 17 Jul 2009
Messages: 10

Re: Champ maxi et mini d'une table

Finalement je me réponds, j'ai bien avancé sur mon problème big_smile

En recoupant les nombreuses infos trouvées sur le forum et les conseils d'un collègue, j'ai pu par la commande suivante obtenir quelque chose de très intéressant :

Select Identifiant, Commune, Min(CoordZ), Max(CoordZ) from [MaTable] group by Identifier into Selection

Je n'avais pas grand chose à ajouter à la commande initiale, mais c'est vrai que quand on n'a pas trop l'habitude de ce langage-là, c'est un peu la galère  ^^'

Enfin j'obtiens comme je le souhaitais une table avec toutes les données nécessaires.


Du coup ce problème étant résolu, je souhaiterais conclure sur ce sujet par un immense MERCI à vous !!

smile

Dernière modification par Seb18 (Mon 27 July 2009 16:03)


Je sers l'État et c'est ma joie  ^^'

Hors ligne

 

Pied de page des forums

Powered by FluxBB