Pages: 1
- Sujet précédent - QGIS: syntaxe table attributaire dans le composeur d'impression - Sujet suivant
#1 Fri 20 March 2020 09:47
- lchevrier
- Participant occasionnel
- Date d'inscription: 16 Feb 2018
- Messages: 41
QGIS: syntaxe table attributaire dans le composeur d'impression
Bonjour à tous,
Je possède un projet QGIS 3 dans lequel je travaille avec une couche cadastrale.
Je souhaite noter dans mon composeur l'ensemble des parcelles qui sont à l'intérieur d'un polygone.
Jusqu'ici pas de problème, il me suffit d'ajouter une table des Attributs (tableau). Simplement voilà, j'ai beaucoup de parcelles concernées et il me faut beaucoup de pages pour toutes les rentrer. existe-t-il un moyen de raccourcir mon tableau en transformant mes lignes de cette manière:
Section | Numéro Section | Numéro
Z | 1
Z | 2
Z | 3 en -> Z | de 1 à 5
Z | 4
Z | 5
Merci beaucoup et bon confinement à tous !
Léo
Hors ligne
#2 Fri 20 March 2020 10:49
- GeoSignature
- Participant occasionnel
- Lieu: Saint-Pierre-des-Nids
- Date d'inscription: 12 Nov 2019
- Messages: 34
Re: QGIS: syntaxe table attributaire dans le composeur d'impression
Bonjour Léo,
Vous pouvez faire cette opération via une requête SQL sur la table, en créant une nouvelle table de synthèse.
Dans votre cas, quelque chose comme ça :
Code:
SELECT section, string_agg(numero, ',') as numeros FROM parcelles GROUP BY section
J'ai utilisé "string_agg()" avec le séparateur texte "virgule", ce qui va donc donner : "1,2,3,4,5" dans la colonne "numéros".
Il serait également possible d'écrire une formule à partir du min et du max des numéros :
Code:
SELECT section, ("de " || min(numero) || " à " || max(numero)) as numeros FROM parcelles GROUP BY section
Les requêtes SQL sur les tables sont accessibles depuis le menu "Bases de données > Gestionnaire de bases de données".
Bon courage !
Hors ligne
#3 Fri 20 March 2020 12:58
- lchevrier
- Participant occasionnel
- Date d'inscription: 16 Feb 2018
- Messages: 41
Re: QGIS: syntaxe table attributaire dans le composeur d'impression
Incroyable !!! Merci beaucoup !!!
Je rencontre un 2ème problème : imaginons que la parcelle 3 (section Z) n'est pas concernée ?
Section | Numéro Section | Numéro
Z | 1
Z | 2 en -> Z | de 1 à 2
Z | 4 Z | de 4 à 5
Z | 5
D'autre part je me demande si
String_agg
ne devrait pas être remplacé par
Group_Concat
Merci encore pour ton aide Sylvain !
Léo
Dernière modification par lchevrier (Fri 20 March 2020 13:35)
Hors ligne
#4 Fri 20 March 2020 19:20
- GeoSignature
- Participant occasionnel
- Lieu: Saint-Pierre-des-Nids
- Date d'inscription: 12 Nov 2019
- Messages: 34
Re: QGIS: syntaxe table attributaire dans le composeur d'impression
D'autre part je me demande si String_agg ne devrait pas être remplacé par Group_Concat
Tu as raison, même si les deux fonctions sont assez similaires.
La fonction "String_agg()" est utilisée dans PostGreSQL, et "Group_Concat()" es utilisée dans Spatialite et donc QGis qui se base sur ce moteur SQL je crois.
imaginons que la parcelle 3 (section Z) n'est pas concernée ?
Dans ce cas, effectivement le min() et max() ne fonctionne pas, et je ne vois pas d'autre solution que de lister l'ensemble des valeurs via un group_concat().
Hors ligne
#5 Sat 21 March 2020 10:42
- lchevrier
- Participant occasionnel
- Date d'inscription: 16 Feb 2018
- Messages: 41
Re: QGIS: syntaxe table attributaire dans le composeur d'impression
Ok,
merci de tout ces renseignements !
Cdt
Hors ligne
Pages: 1
- Sujet précédent - QGIS: syntaxe table attributaire dans le composeur d'impression - Sujet suivant