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

State Of The Map 2024

#1 Tue 01 February 2011 08:52

diou
Participant assidu
Date d'inscription: 27 Jan 2008
Messages: 171

recherche d'une requete Mapbasic

Bonjour,

J'ai un souci pour faire une requête via mapinfo 10. J'ai une table avec des noms d'étang, et des espèces, sauf que sur un étang j'ai plusieurs lignes par espèce et plusieurs espèces recencées. Je souhaiterai faire une requête qui me permette d'obtenir une table avec tous les noms d'étangs cité qu'une seule fois et une seconde colonne avec le nombre d'enregistrement lié au nombre d'espèce qui s'y trouve.

Par exemple : l'étang X est occupé par l'espèce A/B/C/E/F/G où l'espèce A à environ 10 lignes différentes (car classé pas date), j'aimerai obtenir le résultat suivant :

colonne 1: Etang x / Colonne 2 : nombre d'espèce recencées: 6

Pour résumer, je souhaiterai voir apparaitre l'ensemble des étangs recencés dans ma table avec le nombre d'espèces enregistrés par étang
J'espère être assez clair... smile

Si qql un à une idée de la façon dont je peux opérer je suis preneur!

Par avance merci

Dernière modification par diou (Tue 01 February 2011 09:12)

Hors ligne

 

#2 Wed 02 February 2011 08:32

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

Re: recherche d'une requete Mapbasic

Bonjour,

Sans avoir testé, j'essaierai de faire ça en deux temps :

- une première requête :
select etang, first(espece) group by espece

- puis une deuxième requête à partir de la première :
select etang, count(*) group by espece


Christophe Damour (SIGéal)

Hors ligne

 

#3 Wed 02 February 2011 08:57

diou
Participant assidu
Date d'inscription: 27 Jan 2008
Messages: 171

Re: recherche d'une requete Mapbasic

arf hélas cela ne fonctionne pas :'(
merci qd même !

Hors ligne

 

#4 Wed 02 February 2011 08:59

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

Re: recherche d'une requete Mapbasic

Peux-tu en dire un peu plus ?


Christophe Damour (SIGéal)

Hors ligne

 

#5 Wed 02 February 2011 09:08

diou
Participant assidu
Date d'inscription: 27 Jan 2008
Messages: 171

Re: recherche d'une requete Mapbasic

Actuellement j'ai extrait de ma table l'ensemble des Etangs en fesant :

Select etang from  table_X group by étang into ma_sélection

A présent j'ai une table avec l'ensemble de mes étangs, je peux rajouter une colonne afin de calculer l'ensemble des espèces présentes par étangs, mais comment faire? MapInfo me dit qu'il ne reconnait pas la variable "count" :'(
Maintenant je souhaiterai pouvoir associer automatiquement à l'ensemble de mes étangs le nombre d'espèce par étang sachant que par étang j'ai plusieurs espèces distinctes ainsi que la même espèce sur plusieurs lignes différentes (classé par date). Mon but est d'extraire de tout ça le nombre d'enregistrement par étangs du nombre d'espèce en ne comptant qu'une seul foi chaque espèce ...

Je suis surement pas très clair..;

Merci pour votre aide si je peux vous en dire plus n'hésitez pas !

Hors ligne

 

#6 Wed 02 February 2011 09:19

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

Re: recherche d'une requete Mapbasic

Il faudrait d'abord que tu décrives précisément la structure de ta table : liste des colonnes et description de leur contenu.


Christophe Damour (SIGéal)

Hors ligne

 

#7 Wed 02 February 2011 09:30

diou
Participant assidu
Date d'inscription: 27 Jan 2008
Messages: 171

Re: recherche d'une requete Mapbasic

alors la structure de la table : j'ai bcp bcp de colonne, mais seulement 2/3 nous interessent : la première colonne se nomme "Lieu_dit" (se sont mes étangs) le type : caractère (68), la seconde colonne qui nous intéresse est Nom_espèce (se sont mes noms d'espèces) type caractère (24). Voilà les 2 colonnes qui me semblent indispensables pour faire la requete. Après au niveau des lignes : je peux avoir 10 fois le même étang et 10 fois la même espèce recencées car se sont des relevé à des dates différentes, moi je souhaiterais faire en sorte que l'espèce ne soit comptabilisé qu'une seule foi. De plus, sur un même étang, j'ai plusieurs espèces distinctes, donc mon but est de récupérer le cumul du nombre d'espèce présente sur l'étang A par exemple.

pour exemple : j'ai un étang A et dans cette étang j'ai 10 foi l'espèce X (à 10 dates distinctes) 5 foi l'espèce Y , 4 foi l'espèce Z etc...et j'ai en tout 6 espèces (qui ont également 10/15/20 foi un enregistrment selon la date à laquelle on a pu la voir) mon but est d'obtenir automatiquement une table avec l'ensemble des mes étangs en colonne A et le nombre d'espèce présentent par étang. Ce qui signifie de compter une seule foi chaque espèce par étang et d'effectuer un cumul, la somme du nombre d'espèce recencés pour obtenir le nombre d'espèce présente par étang...

Pour le moment j'ai juste réussi à créer une table avec l'ensemble de mes "lieu-dit", il ne reste plus qu'a rajouter la colonne "somme des espèces recencées"
J'espère être le plus clair possible désolé se n'est pas évident à expliquer...

Dernière modification par diou (Wed 02 February 2011 09:34)

Hors ligne

 

#8 Wed 02 February 2011 10:03

SIGEAL
Participant assidu
Lieu: Saint Laurent des Combes
Date d'inscription: 5 Sep 2005
Messages: 195
Site web

Re: recherche d'une requete Mapbasic

Donc je reprends ma suggestion sous forme plus détaillée avec les bons noms de colonnes :
- Première requête pour éliminer les doublons d'espèces :
select Lieu_dit, min(Nom_espèce) "espece" from nom_table group by Lieu_dit into recap_etang_especes

- Deuxième requête à partir de la première pour compter les espèces :
select Lieu_dit, count(*) "nb_especes" from recap_etang_especes group by Lieu_dit into nb_especes_etang

Il faut regrouper par Lieu_dit (et non par espece comme je le disais dans mon premier message), et remplacer first par min dans la première requête. Les noms entre guillemets permettent de renommer les colonnes calculées.

Attention : pour que ça marche, il faut absolument que les noms de lieux-dits et d'espèces soient orthographiés exactement de la même façon !

Dernière modification par SIGEAL (Wed 02 February 2011 10:05)


Christophe Damour (SIGéal)

Hors ligne

 

#9 Wed 02 February 2011 10:38

diou
Participant assidu
Date d'inscription: 27 Jan 2008
Messages: 171

Re: recherche d'une requete Mapbasic

merci pour toutes ces précisions, j'ai donc fait la première requête qui me crée donc une table avec l'ensemble des étangs et qui crée dans cette table une colonne "espèce" où l'ensemble est = à 0
Après la seconde requête me crée une seconde table également qui se nomme "nbr_espece_etang", mais hélas l'ensemble de mon nbr_espece est = à 1
Je pense que je suis pas loin de la solution, seul le comtpage du nbr d'espece ne fonctionne pas.

Du coup je fais le comptage manuellement après un tri de ma table d'origine ce qui fonctionne, mais si vous avez une autre idée d'une requête cela m'interesse quand même smile

cordialement

Dernière modification par diou (Wed 02 February 2011 10:55)

Hors ligne

 

Pied de page des forums

Powered by FluxBB