#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: 1012
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: 3881
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