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é ?

Annonce

Pour sa 21ème année, l’association GeoRezo a toujours besoin de vous !

10€ = 1 mois de frais bancaires ; 15€ = 12 mois de nom de domaine ; 30€ = 1 semaine de location des serveurs …

Faire un don 

Retrouver nos membres bienfaiteurs

#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

 

Pied de page des forums

Powered by FluxBB