Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Printemps des cartes 2024

#1 Mon 25 May 2020 03:30

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

QGIS: Requete SQL ?

Bonjour à tous,

J'ai beaucoup de mal avec les requêtes.. j’espère que qql un pourra m'aider..

J'ai digitalisé un cadastre de 1840 sur le logiciel QGIS et comme champs dans la table d'attribut j'ai :
le propriétaire pour chaque parcelle, la nature de la parcelle (ex murier, bergerie, maison, verger etc.), le revenu, la superficie etc.

J'essaie de faire une "sélection par expression" mais je n'arrive pas à formuler ma demande c'est trop complexe pour moi pour l'instant...

Ce que j'aimerais faire par exemple, c'est sélectionner  tous les propriétaires qui ont un murier avec les revenus les plus hauts :
j'ai fait plusieurs essais mais rien ne marche Le logiciel m'indique à chaque fois que l'expression est invalide : pouvez vous m'aider à trouver ce qui ne va pas ?

SELECT* "champs propriétaire" WHERE "champs nature parcelle" = 'murier' ORDER BY "revevu" DESC LIMIT 0,25

SELECT* "champs propriétaire" WHERE "champs nature parcelle" = 'murier' AND "revevu" < 0,25

?? je suis complétement perdue ..Lorsque je fais une demande avec un seul critère, c'est bon ça marche, mais quand j'en veux plusieurs je n y arrive pas ...

Merci à vous !


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

Hors ligne

 

#2 Mon 25 May 2020 10:32

Olivier Pompier
Participant occasionnel
Date d'inscription: 8 Sep 2013
Messages: 49

Re: QGIS: Requete SQL ?

Bonjour,

D'où vient le 0.25 que vous placez dans vos requêtes ?

Une requête SQL a l'anatomie suivante :

SELECT ..
FROM ..
WHERE..

Dans la clause SELECT, on sélectionne les champs voulus par exemple:

SELECT id, nom       -- Pour selectionner les champs id et nom
SELECT *                -- Pour selectionner tous les champs
SELECT LEFT(nom,2) -- On peut ajouter des expressions
SELECT champ1 as login -- Pour ajouter des alias

Dans la clause FROM, on choisis la ou les tables sur lesquelles on execute la requête:

FROM table1, table2

Dans la clause WHERE, on limite les résultats via un critère spécifique:

WHERE nom LIKE 'Martin'
WHERE parcelle LIKE 'murier' etc

Dans votre cas, votre requête devrait ressemble à ça:

SELECT *         (je prends toutes les colonnes)
FROM table_cadastre
WHERE nature LIKE 'murier'
ORDER BY revenu DESC LIMIT 5 (pour prendre que les 5 ayant le plus haut revenu)


MAIS !!!

Vous semblez passez par l'outil de selection par expression de QGIS, dans cette fenêtre vous ne devez pas saisir toute la requête SQL mais seulement ce qui suit la clause WHERE.

Tu ferais mieux de passer par le DB Manager (onglet Base de données) et de saisir directement ta requête dans la fenetre SQL en selectionnant les couches virtuelles QGIS.

Hors ligne

 

#3 Mon 25 May 2020 12:09

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3807

Re: QGIS: Requete SQL ?

Bonjour,

J'essaie de faire une "sélection par expression" mais je n'arrive pas à formuler ma demande c'est trop complexe pour moi pour l'instant... [...]
j'ai fait plusieurs essais mais rien ne marche Le logiciel m'indique à chaque fois que l'expression est invalide


Sur la base de la copie d'écran, la syntaxe que vous utilisez n'est pas du tout celle de cette fenêtre; ce n'est pas du sql qui est attendue, ou plutôt, cette fenêtre sert à juste indiquer le where, la condition. Et pas de order by ou autre, juste le where.
Testez donc cela.
Je vous invite également à abuser du bouton "aide" en bas de la fenêtre qui ouvre la doc et qui, j'ose espérer, peut peut-être aiguiller: https://docs.qgis.org/3.10/fr/docs/user … ssion.html

En ligne

 

#4 Mon 25 May 2020 12:13

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

Re: QGIS: Requete SQL ?

Merci pour votre réponse tres complete ! je vais essayer cela de suite !

Mais quand vous dites que :

SELECT* sélectionne tout les champs, je ne comprends pas ... ? je ne mets pas le champs que je veux qu'il sélectionne ?

SELECT id, nom --> je choisis donc les colonnes qu'il doit choisir ? à la place de id et nom je peux mettre autre chose ? et la virgule sert à additionner ? n'est ce pas la même chose que SELECT LEFT(nom,2) ??

SELECT champ1 as login -- Pour ajouter des alias, je ne comprends ... ?

quand je choisis ma tables ? c'est ma couche que je dois mettre ? et quand je mets ma couche apres FROM, il me demande l'ID de la couche ? savez vous ou le trouver ?

Merci encore !

Hors ligne

 

#5 Mon 25 May 2020 12:28

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

Re: QGIS: Requete SQL ?

Santana merci pour votre réponse ! effectivement , ils parlent d'une erreur de syntaxe ..donc quand je fais juste nature like murier ca marche !
mais où allait pour faire ma demande ?
DB manager ?

Hors ligne

 

#6 Mon 25 May 2020 12:44

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

Re: QGIS: Requete SQL ?

je ne trouve pas DB manager...

Hors ligne

 

#7 Mon 25 May 2020 13:08

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

Re: QGIS: Requete SQL ?

Ok c'est bon ! j'ai compris effectivement il faut que j'utilise la syntaxe de la fenêtre, pour des petites demandes je pense que ca ira.. a voir si pour des plus complexes si ca marche aussi et si j y arrive..

J'ai fait : "nature"  LIKE  'murier'  AND "revenu" > 24.84

du coup j'ai pris un revenu existant, mais je n'arrive pas à faire les 25 plus grand par contre  ?

et avez-vous une idée aussi, si je veux juste chercher un mot dans un champs et non pas sélectionner un groupe ?

par exemple dans mon champs nature j'ai :
- "murier"  ou "murier vigne" ou "murier châtaigne"

j'aimerais que la recherche se base sur tous ces groupes et donc que la recherche passe uniquement par un mot ici "murier" et non un groupe afin qu'il puisse aussi prendre en compte les muriers dans "murier vigne" et "murier châtaigne" et ?

Dernière modification par DENOYLISE34 (Mon 25 May 2020 13:13)

Hors ligne

 

#8 Mon 25 May 2020 15:52

carteq
Participant assidu
Date d'inscription: 8 Mar 2008
Messages: 829

Re: QGIS: Requete SQL ?

mais je n'arrive pas à faire les 25 plus grand par contre  ?


Utilisez ORDER BY CHAMP DESC  LIMIT 25. (En SQL)

uniquement par un mot ici "murier" et non un groupe afin qu'il puisse aussi prendre en compte les muriers dans "murier vigne" et "murier châtaigne" et ?


Voir l'opérateur "inStr".

Hors ligne

 

#9 Mon 25 May 2020 16:37

SANTANNA
Moderateur
Lieu: Angers
Date d'inscription: 18 Jan 2008
Messages: 3807

Re: QGIS: Requete SQL ?

par exemple dans mon champs nature j'ai :
- "murier"  ou "murier vigne" ou "murier châtaigne"


Toujours dans la fenêtre de selection

Code:

"nature"  LIKE  'murier%'

Ceci fait partie des exemples figurant dans le lien précédemment envoyé

du coup j'ai pris un revenu existant, mais je n'arrive pas à faire les 25 plus grand par contre  ?


Il faudra un peu plus expliciter ce que sont "les 25 plus grands". De quoi? A priori, je pense qu'il va falloir regarder du côté des fonctions d'agrégats (sur la même page dans la doc - et à noter que chacune des fonctions présente une aide et un exemple dans la fenêtre de sélection).

Je fais beaucoup référence à la doc car si vous perdez un peu de votre temps à le fouiller et/ou lire (pas tout!), je pense à mon humble avis que vous y gagnerez du temps après et ne serez pas perdue ni devant le logiciel ni lorsque différentes solutions, parfois décontextualisées, vous sont proposées.

En ligne

 

#10 Mon 25 May 2020 22:41

DENOYLISE34
Participant occasionnel
Date d'inscription: 14 May 2020
Messages: 29

Re: QGIS: Requete SQL ?

Merci pour tous, je vais essayer  ce que vous me proposez !
je vais effectivement essayer de chercher et regarder tranquillement merci encore !

Dernière modification par DENOYLISE34 (Mon 25 May 2020 22:41)

Hors ligne

 

Pied de page des forums

Powered by FluxBB