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 26 June 2020 12:20

AnniWei N
Juste Inscrit !
Date d'inscription: 26 Jun 2020
Messages: 2

QGIS: Difficulte a finir une requete SQL

Bonjour,

Je dois réaliser une jointure entre deux couches (un tableur Excel et la couche MAJIC), j'ai bien une colonne (IDU) me permettant de faire cette jointure mais dans mon tableur Excel, j'ai plusieurs lignes avec le même IDU.
Dans la première jointure que j'ai réalisée, pour chaque code qui apparaissait plus d'une fois dans mon tableur Excel, le logiciel sélectionnait par défaut la première ligne et les autres disparaissaient. J'ai constaté mon erreur et j'ai donc cherché comment faire sur des forums, j'ai trouvé un tutoriel proposant de faire une requête SQL, je pensais l'avoir bien réalisée..

Finalement après avoir "exécuté" cette requête (où le nombre d'enregistrements correspond bien aux données que je souhaite avoir) et cliqué sur "Charger en tant que nouvelle couche" dans le "Gestionnaire de base de données", je n'arrive pas à afficher ces données dans la table attributaire de cette nouvelle couche.
Lorsque j'ouvre la table attributaire, il n'y a qu'une seule ligne avec écrit au dessus qu'il y a 1019 entités (ce chiffre est bon) et 1 filtrée.

Est-ce que quelqu'un saurait où je fais une erreur ? Est-ce dans ce que j'écris dans la requête ? Ou ailleurs ?

J'espère que j'ai été claire pour quelque chose qui n'est pas très clair pour moi.

Le version de QGIS que j'utilise est la 3.4.13 sur windows 104
La requête SQL est la suivante:
select*
from première couche, deuxième couche
where IDU = IDU

Merci

Hors ligne

 

#2 Fri 26 June 2020 13:19

GlaDal
Participant assidu
Date d'inscription: 30 Aug 2013
Messages: 1105

Re: QGIS: Difficulte a finir une requete SQL

Bonjour,

Pour moi, la requête est bonne. Le problème ne doit pas venir de là.
Après ne travaillant pas sur des données MAJIC de cette manière, je n'ai jamais rencontré ce problème.

Hors ligne

 

#3 Fri 26 June 2020 14:08

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

Re: QGIS: Difficulte a finir une requete SQL

La requête SQL est la suivante:
select*
from première couche, deuxième couche
where IDU = IDU


C'est pour le moins ambigü.

Essayez ceci :

select*
from première couche as a, deuxième couche as b
where a.IDU = b.IDU

Cela dit, la requête devrait inclure un JOIN pour faire ce que vous décrivez, Quelque chose comme :

select*
from première couche as a
JOIN deuxième couche as b ON a.IDU = b.IDU

Dernière modification par carteq (Fri 26 June 2020 14:19)

Hors ligne

 

#4 Fri 26 June 2020 17:49

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

Re: QGIS: Difficulte a finir une requete SQL

Bonjour,
QGIS a besoin d'un champ identifiant unique pour pouvoir charger la couche. Or dans la requête, vu que les objets majic sont potentiellement en doublon, aucun champ ne pourrait faire le job car en doublon. Il faudrait ajouter un champ du style "select row_number() over () as champ_unique, * from ..."

Edit: Par contre, cela va vous créer autant de parcelles graphiques qu'il n'y a d'IDU identiques dans la table jointe. Ce qui n'est pas forcément des plus pratiques. Une alternative est de passer par les relations.

Hors ligne

 

#5 Tue 30 June 2020 16:23

AnniWei N
Juste Inscrit !
Date d'inscription: 26 Jun 2020
Messages: 2

Re: QGIS: Difficulte a finir une requete SQL

Merci ! J'essayerai plutôt les relations

Hors ligne

 

Pied de page des forums

Powered by FluxBB