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é ?

#1 Fri 11 October 2002 17:13

Sebastien Roddier
Invité

ANNONCE: Document sur SQL !!

Bonsoir a tous

Comme promis voici l'adresse ou vous trouverez mon document sur
l'utilsation avancee du SQL avec MapBasic.

Ce document est libre de droit aussi n'hesitez pas a le mettre a jour.
Pour cela une seule regle:
envoyez moi la version corrigee et je metterai a jour le site.

Ce document est donc disponible a l'adresse suivante :
ftp://lct.teledetection.fr/pub/sigmap/dgal/

Merci a Maurice Nadal et a la Maison de la teledetection de leur offre.

Cordialement

Sebastien

 

#2 Mon 14 October 2002 12:20

Sebastien Roddier
Invité

Re: ANNONCE: Document sur SQL !!

Bonjour a tous

Mon document sur le MapBasic et SQL est a peine en ligne que notre
confrere Jacques Paris est en train de nous mitonner une nouvelle
version . Connaissant son niveau, nous pouvons nous attendre a des
astuces complementaires bien utiles.

Comme je l'ai deja dit ce document est un guide pour l'utilisation du
SQL dans une fenetre MapBasic. Aussi je n'ai pas developper la version
interfacee avec le requeteur.

Peut etre cela interesse quelqu'un de nous aider adans cette tache.

N'oubliez pas de mettre vos noms et qualites si vous souhaitez apporter
votre pierre a l'edifice.

Pour ceux qui ont des problemes de connexions avec le site ou se trouve
le document, desoale mais je ne suis pas le meilleur interlocuteur. Mais
je m'efforce de transmettre les messages.

Cordialement

 

#3 Mon 21 October 2002 10:13

Sebastien Roddier
Invité

Re: ANNONCE: Document sur SQL !!

Bonjour a tous

Suite a quelques problemes de connexion pour recuperer le document je
vous invite a essayer l'adresse suivante :

ftp://lct.teledetection.fr/pub/sigmap/dgal/

Attention : Jacques Paris vient de m'envoyer une version amelioree du
document, je prend le temps de le lire avant de le mettre a disposition.

Cordialement

 

#4 Thu 24 October 2002 08:29

Jacques Paris
Invité

Re: ANNONCE: Document sur SQL !!

Une nouvelle version du document offert par Sebastien Roddier au debut du
mois et que j’ai remanie et quelque peu augmente est finalement disponible.
Comme il y a eu quelques problemes de teledecharge sur le site initial,
Sebastien m’a demande si je pouvez me charger de la diffusion. Alors, vous
trouverez sur notre site www.paris-pc-gis.com
dans la section « Fichiers d’autres origines » une entree (la derniere de la
table) pour « Mapinfo avance sans MapBasic - partie I - SQL dans sa fenetre
ou dans la fenetre MapBasic »

Sebastien et moi aimerions bien toute contribution qui ameliorerait le
document et en augmenterait la portee. Merci d’avance

Jacques Paris
e-mail jacques@texte-a-enlever.paris-pc-gis.com
MapBasic-MapInfo support http://www.paris-pc-gis.com

 

#5 Mon 28 October 2002 22:34

Eric Mauviere
Invité

Re: ANNONCE: Document sur SQL !!

De: Eric Mauviere
J'ai lu avec un tres grand interet le document
elabore par Sebastien Roddier et Jacques Paris.
J'ai apprecie leur approche progressive et l'exhaustivite du document,
nourri de nombreux exemples.

Je voudrai apporter ici 3 cas concrets supplementaires,
qui correspondent a des problemes frequemment rencontres dans ma vie de statisticien.

1) lissage geographique d'un taux
Prenons l'exemple du taux des jeunes de moins de 20 ans dans la population totale,
etudie par commune.
Le lissage evoque ici, bien connu desormais, consiste a calculer le taux sur une zone
un peu plus large que la commune a laquelle il sera affecte, en prenant en compte
la premiere couronne des communes adjacentes. Il reprend le principe de la moyenne mobile,
utilise pour lisser des courbes.

Si le calcul est possible en SQL simple, il suppose de creer une copie du fond de carte
de travail, avec les deux variables constitutives du taux, puis de faire une jointure cartesienne
du fonds source et de sa copie, avec une condition intersects .

Mapinfo offre une alternative plus elegante encore,
qui permet de faire le calcul en deux lignes, sans avoir a creer de copie,
grace a la fonction Mettre a jour colonne :

add column data (_varc) from data set to sum((10^9)*var1+var2) where intersects
add column data (_varliss) from data set to 100*round(_varc/10^9,1)/(_varc -10^9*round(_varc/10^9,1))

Commentaire : data est le fonds source (ex : region PACA par commune), var1 le premier element du taux (ex : nb des moins de 20 ans),
var2 le 2eme element du taux (ex population totale de la commune).
add column permet de faire une jointure d'une table sur elle-meme, ce que le SQL de Mapinfo n'autorise pas.
on a dans la premiere ligne groupe le calcul de la somme mobile des elements du taux, en faisant l'hypothese
que ces elements etaient inferieurs a 10^9.

2) calcul d'une somme cumulee

Soit data la table de travail, var le champ numerique dont on veut produire la somme cumulee.
On suppose que data est deja triee dans l'ordre desire pour le cumul.

Alter Table data ( add _rowid Integer, _test smallint )
Update data Set _rowid = rowid, _test=1
Commit Table data
Commit Table data As c:tempdatac.tab
Open Table c:tempdatac.tab
Select data._rowid,data.var,sum(datac.var) csom_var from data, datac where data._test=datac._test and data._rowid>=datac._rowid group by 1 into csum noselect

Commentaire : on numerote les lignes de la table source et l'on cree un champ test=1
avant de faire une copie de la table.
La jointure cartesienne de la table source et de sa copie est toleree par Mapinfo des lors qu'une condition de jointure geographique
ou qu'une egalite entre deux champs lui est fournie (role de la variable test ).

3) determination automatique de la commune la plus peuplee d'un canton donne
l'exemple commune/canton pris ici s'etend a tout couple de zonages emboites.

Select cant,max(val(str(psdc99) & com)) test from FOND group by 1 into temp1 noselect
Select cant,right(str(test),5) compole from temp1 into tab_poles

Commentaire : cant est le code canton, com le code commune, psdc99 la variable population du fonds de carte FOND .
La table resultante tab_poles indique pour chaque canton present dans FOND le code de sa commune la plus peuplee.

Eric Mauviere
http://www.geoclip.net

 

#6 Tue 29 October 2002 08:33

Jacques Paris
Invité

Re: ANNONCE: Document sur SQL !!

Les exemples qu'Éric nous offrent, plus celui qui avait ete propose par
Pascal Geraut suite a une question de Corinne juste apres la  parution  de
la deuxieme version de notre document renforcent la necessite d'elargir la
base documentaire que nous avons amorcee. Il n'est pas possible de rester
focalise sur de simples enonces (ex. Select); la plus part des problemes
concrets trouvent une solution dans une combinaison d'enonces divers. Et
chose merveilleuse, les solutions peuvent etre mises en œuvre sans avoir
MapBasic a sa disposition.

Si la partie I du document est fondee sur un seul enonce, plusieurs exemples
en debordaient. Je propose que la partie II soit construite autour de ce
type de solutions pratiques, avec un support  generique  sur les fonctions
utilisees. Plutot que de n'avoir qu'une accumulation de definitions utiles
certes comme reference mais restant assez  abstraites , nous pourrions
construire quelque chose de bien concret et de pratique qui ouvrirait la
porte a une utilisation beaucoup plus efficace de MapInfo.

N'hesitez pas a fouiller vos tiroirs, a  revivre  vos problemes passes,
affichez les sur la liste ou envoyez les directement, il est remarquable
comment plusieurs situations peuvent se recouper et donner lieu a des
solutions bien plus performantes.

Jacques Paris

 

Pied de page des forums

Powered by FluxBB