#1 Tue 27 January 2015 10:45
- Frago
- Participant actif
- Date d'inscription: 5 Oct 2011
- Messages: 53
Requête spatiale de proximité
Bonjour,
Je souhaiterais pouvoir croiser deux tables de ponctuels entre elles en fonction d'un critère de proximité (magasins à 500m d'un habitant).
Je dispose de la table MAGASIN (avec un IDU_MAG) et de la table HABITANT (avec un IDU_HAB).
Je suis parvenu à compter le nombre de magasins à 500m. d'un habitant. Voici ma requête :
Code:
Select HABITANT.IDU_HAB, count(*) from HABITANT where obj within any ( select buffer ( obj , 12 , 500 , "m" ) from MAGASIN where IDU_MAG like "G01" or IDU_MAG like "G02" or IDU_MAG like "G03" or IDU_MAG like "G05" ) group by HABITANT.IDU_HAB into count_MAG_HAB
Ainsi j'ai un résultat du type :
IDU_HAB ; count
001 ; 2
002 ; 1
003 ; 4
004 ; 2
... ; ...
Je souhaitais avoir s'il était possible de rajouter une colonne qui comporterait les noms de magasins concaténés. Exemple :
IDU_HAB ; count ; IDU_MAG
001 ; 2 ; G01-G05
002 ; 1 ; G01
003 ; 4 ; G01 - G02 - G03 - G05
004 ; 2 ; G03 - G05
... ; ... ; ...
Difficile (ou impossible) sous mapinfo sans système de base de données relationnelles ?
Le cas échant, serait-il possible d'obtenir :
IDU_HAB ; IDU_MAG
001 ; G01
001 ; G05
002 ; G01
003 ; G01
003 ; G02
003 ; G03
003 ; G05
004 ; G03
004 ; G05
... ; ...
Merci d'avance pour votre aide,
Hors ligne
#2 Tue 27 January 2015 12:20
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Requête spatiale de proximité
Salut,
Une possibilité pour ta première requête:
Select HABITANT.IDU_HAB, count(*) from HABITANT where obj within any ( select buffer ( obj , 12 , 500 , "m" ) from MAGASIN where IDU_MAG in (G01,G02,G03,G05) group by HABITANT.IDU_HAB into count_MAG_HAB
Maintenant pour avoir ce que tu désires -> il serait plus facile de passer sur Excel et ses tableaux dynamiques.
Pour le cas échant:
Il te faut une jointure spatiale entre tes 2 tables.
Select * from TableHabitant, TableBufferMagasin where TableHabitant.obj within TableBufferMagasin.obj into Jointure
A+
Joël
Hors ligne
#3 Tue 27 January 2015 12:53
- Spacejo
- Membre
- Lieu: Nancy
- Date d'inscription: 17 Aug 2008
- Messages: 2511
Re: Requête spatiale de proximité
Aprés avoir fait ta jointure.
Une solution est de faire un export en .txt, .dbf ou .csv (Table -> Exporter) puis importer ce fichier dans Excel (2003 pour le .dbf) et voici un exemple:
Voir --> Transformation d'une BD en Tableau
Dans --> http://boisgontierjacques.free.fr/pages … #TableauBD
--> http://boisgontierjacques.free.fr/fichi … ableau.xls
A+
Joël
Dernière modification par Spacejo (Tue 27 January 2015 12:55)
Hors ligne