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 Tue 09 January 2007 11:53

MAS
Participant occasionnel
Date d'inscription: 19 Sep 2005
Messages: 24

sql

Bonjour,

Je dispose de 2 tables de batiments.
bat1 correspond aux batiments de 2006 et
bat 2 aux batiments de 2000.

quelle est la sélection sql à réaliser pour trouver les batiments 2006 qui ne se supperposent pas aux batiments de 2000 soit trouver les nouvelles réalisations.

merci beaucoup
Bérengère

Hors ligne

 

#2 Tue 09 January 2007 13:09

samuel_31
Participant actif
Lieu: Pamiers
Date d'inscription: 16 Apr 2006
Messages: 116
Site web

Re: sql

bonjour
tu peux faire une sélection avec l'opérateur intersect. ensuite, il suffit d'inverser la sélection.
bonne journée
samuel

Hors ligne

 

#3 Tue 09 January 2007 13:29

MAS
Participant occasionnel
Date d'inscription: 19 Sep 2005
Messages: 24

Re: sql

j'ai essayé avec  intersect et en mettant not devant mais ca ne marche pas quand même

Hors ligne

 

#4 Tue 09 January 2007 15:22

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

Re: sql

Bonjour
Peut être vaut-il mieux mettre comme condition une comparaison des surfaces  ??
On peut aussi tester (en complément?) le "enterely within" ou le "contains entire" ??

Hors ligne

 

#5 Tue 09 January 2007 15:45

jean-francois Behm
Participant assidu
Lieu: Toulouse
Date d'inscription: 5 Sep 2005
Messages: 212
Site web

Re: sql

Bonjour,
je pense qu'il faut sélectionner les bat1 qui ont leur centre dans bat2 et prendre l'inverse :

Colonnes... *
Tables...     bat1
Critères...   bat1.id not in(select bat1.id FROM bat1.bat2 WHERE bat1.obj within bat2.obj)

Remarque : il faut avoir un identifiant unique pour chaque bat1 (bat1.id).


Jean-François Behm
SERVICES GEOGRAPHIQUES
Centres de formation SIG - http://servicesgeographiques.com

Hors ligne

 

Pied de page des forums

Powered by FluxBB