VI. Sélectionner des données : les requêtes
VI.3 Combiner des requêtes
- Combiner deux requêtes attributaires
- Combiner deux requêtes spatiales
- Combiner requêtes spatiales et attributaires
Comment faire quand on souhaite combiner plusieurs requêtes, par exemple sélectionner les communes traversées par un cours d'eau et ayant une population de + de 10 000 habitants ?
Combiner deux requêtes attributaires
Pour combiner deux requêtes attributaires, nous avons vu dans la partie VI.1.5 qu'il est possible d'utiliser les opérateurs AND et OR.
Il est également possible de faire deux requêtes successives.
Nous allons ici sélectionner les communes du Morbihan de + de 10 000 habitants.
Ouvrez un nouveau projet QGIS, ajoutez-y la couche communes_Bretagne.
Ouvrez la table attributaire de cette couche puis la fenêtre de requête attributaire.
Sélectionnez tout d'abord les communes de + de 10 000 habitants au moyen d'une requête attributaire :
"POPULATION" > 10000
Tapez ensuite la requête suivante, pour sélectionner les communes du Morbihan...
"INSEE_DEP" = '56'
...Mais cette fois-ci, au lieu de cliquer sur « Sélectionner des entités », cliquez sur le petit triangle à droite et sélectionnez dans la liste Filtrer la sélection courante :
Ainsi, cette deuxième requête s'appliquera uniquement aux communes déjà sélectionnées : les communes du Morbihan seront sélectionnées parmi les communes de + de 10 000 habitants.
Utilisez cette fois pour la deuxième requête le bouton Supprimer de la sélection actuelle : les communes du Morbihan seront désélectionnées et il ne restera de sélectionnées que les communes de + de 10 000 des autres départements.
Combiner deux requêtes spatiales
Comment faire maintenant pour combiner deux requêtes spatiales, par exemple pour sélectionner les communes avec éolienne et cours d'eau ?
Attention, le nombre d'entités sélectionnées peut varier légèrement par rapport à ceux indiqués ici si vous chargez des données via des flux WFS et que ces données ont été mises à jour depuis la rédaction de ce tutoriel.
Connectez-vous au flux WFS http://services.sandre.eaufrance.fr/geo/zonage et ajoutez la couche Cours d'eau de plus de 100km - BD Carthage - France entière.
Ajoutez également au projet la couche Eoliennes implantations en Bretagne issue du flux WFS https://geobretagne.fr/geoserver/dreal_b/wfs.
A ce stade, votre projet contient donc ces 3 couches :
Avec l'outil de sélection par localisation, sélectionnez tout d'abord les communes avec éoliennes.
A ce stade, 256 communes sont sélectionnées.
Il ne reste plus ensuite qu'à sélectionner les communes intersectant des cours d'eau à partir de cette sélection :
Au final, 109 communes contiennent à la fois une éolienne et sont traversées par un cours d'eau de + de 100 km.
Le résultat serait le même en procédant à l'inverse, c'est-à-dire en sélectionnant d'abord les communes traversées par un cours d'eau puis à partir de cette sélection les communes contenant une éolienne.
Combiner requêtes spatiales et attributaires
Le principe est le même que précédemment. Sélectionnons par exemple les communes de + de 10 000 habitants avec éolienne.
Commencez par sélectionner au moyen d'une requête attributaire les communes de + de 10 000 habitants : "POPULATION" > 10000.
37 communes sont sélectionnées.
Ensuite, au moyen d'une requête spatiale, sélectionnez parmi ces communes celles avec une éolienne, avec l'option Sélection au sein de la sélection courante :
Au final, 2 communes restent sélectionnées : Lamballe-Armor et Pacé.
Pour connaître le nom des communes sélectionnées, ouvrez la table attributaire de la couche de communes et choisir Ne montrer que les entités sélectionnées dans la liste déroulante en bas à gauche de la table.
Il est aussi possible de procéder à l'inverse : sélectionner d'abord les communes avec éoliennes puis parmi celles-ci celles de + de 10 000 habitants.
Dans le chapitre suivant, nous verrons comment aller encore plus loin en écrivant directement des requêtes en langage SQL !
chapitre précédent chapitre suivant
haut de page