==== Requêtes complexes ==== Il n'est pas possible de mixer des éléments spatiaux et attributaires dans une même requête élaborée. Le plus simple étant de décomposer la requête en effectuant une par une les requêtes.\\ \\ * Système d'exécution de requête SQL\\ \\ Permet à partir d'un document texte contenant une requête SQL de l'exécuter sur une base de données donnée :\\ Fonction : **db.execute**\\ Chemin : Database/Query/SQL statement\\ Notes : Il suffit dès lors de rentrer la référence du fichier texte (via le bouton Browse), de choisir le type et le nom de la base de données sur laquelle devra s'effectuer la requête.\\ \\ {{ :fonctions:interrogation:complexe:complexe1.png?200 |}}\\ \\ \\ * Requête sur/avec les vecteurs\\ \\ Sélection par les attributs sur une carte vectorielle via du SQL :\\ Fonction : **v.db.select**\\ Chemin : Database/Query/Query vector attribute data\\ Notes : Il faut dans le premier onglet sélectionner la carte vecteur, le nom des colonnes et les contraintes associées à la sélection désirée. Il est possible d’enregistrer directement grâce à « Name for output file / Nom pour le fichier de sortie ».\\ \\ {{ :fonctions:interrogation:complexe:complexe2.png?200 |}}\\ \\ {{ :fonctions:interrogation:complexe:complexe3.png?200 |}} \\ \\ Un exemple de résultat dans l'onglet « Message de commande » (en gris les informations d’exécution, en blanc les données résultat) :\\ \\ {{ :fonctions:interrogation:complexe:complexe4.png?200 |}}\\ \\ Extraction depuis une couche :\\ Fonction : **v.extract** (Sélection d’attributs) \\ Chemin : **Vecteur/Sélection d’entité/ Sélection d’attribut**\\ Notes : Il faut entrer le nom de la carte vectorielle de référence et la carte à générer dans l'onglet « Requis» puis dans l'onglet « Selection » il est possible de choisir les options de sélection comme l'ajout de contraintes sur les attributs.\\ \\ {{ :fonctions:interrogation:complexe:complexe5.png?200 |}}\\ \\ Sélection entre deux couches vectorielles :\\ Fonction : **v.select** (requête spatiale) \\ Chemin : Vecteur > Sélection d’entité \\ Notes : Le premier onglet permet de choisir les 2 cartes vectorielles et la carte vectorielle de sortie; le second onglet permet de modifier les entités prises en compte et le troisième de spécifier l'action qui devra être effectuer sur la seconde carte par la première. Les 3 onglets ont en bas l'option d'affichage des résultats directement dans l'arbre des couches – donc de l'affichage des résultats sur la carte.\\ \\ {{ :fonctions:interrogation:complexe:complexe6.png?200 |}}\\ \\ Sélection dans une carte vectorielle à partir d'un référentiel géographique : Fonction : **v.what (requêtes sur coordonnées)**\\ Chemin : Vecteur > Interroger une carte vecteur \\ Notes : Le premier onglet permet de choisir la carte vectorielle; le second permet de définir les coordonnées pour effectuer la requête et le seuil de distance.\\ \\ {{ :fonctions:interrogation:complexe:complexe7.png?200 |}}\\ {{ :fonctions:interrogation:complexe:complexe8.png?200 |}}\\ \\ * Requête sur les rasters\\ \\ Sélection dans une carte raster à partir d'un référentiel géographique :\\ Fonction : **r.what**\\ Notes : Le premier onglet permet de choisir la carte raster; le second permet de définir les coordonnées pour effectuer la requête et le cache du point – la distance.\\ \\ {{ :fonctions:interrogation:complexe:complexe9.png?200 |}}\\ \\ Sélection dans une carte raster à partir d'un référentiel colorimétrique :\\ Fonction : **r.what.color (interroger les couleurs par les valeurs)** \\ Chemin : Raster > Interroger une carte raster \\ Notes : Le premier onglet permet ici aussi de choisir la carte raster; le second permet de définir la (ou les) valeur(s) pour les couleurs ainsi que le format de sortie.\\ \\ {{ :fonctions:interrogation:complexe:complexe10.png?200 |}}