Erreur de base de données SpatiaLite: aucune table de ce type, mais elle est présente dans la base de données SpatiaLite

Aug 16 2020

Je suis nouveau dans les bases de données dans QGIS, mais je ne trouve aucune réponse dans toute la documentation et l'aide en ligne en une semaine de recherche désespérée. Je pense que cela pourrait être une erreur de débutant, mais ne peut tout simplement pas résoudre ce problème.

J'essaie de joindre deux tables d'attributs à partir de deux fichiers de formes de points [j_pipeline_inc (multipoint) à j_pipeline_midpts (point)] en utilisant une expression SQL (image jointe):

SELECT j_pipeline_midpts.*, j_pipeline_inc.*
FROM j_pipeline_midpts
INNER JOIN j_pipeline_midpts
on j_pipeline_midpts.LSD = j_pipeline_inc.LOCATION and j_pipeline_midpts.Licence_No=j_pipeline_inc.LICENCE_NO

La jointure sera basée sur deux clés (LSD & Location, Licence_No & LICENCE_NO). J'ai créé une base de données SpatiaLite (incident_move.sqlite), qui contient ces deux fichiers de formes ponctuelles, mais lorsque j'exécute mon expression, elle déclare: "aucune table de ce type: j_pipeline_inc". Je ne comprends pas pourquoi il ne reconnaît pas l'un des fichiers. Lorsque je tape leurs noms dans la zone d'expression, les deux noms de fichiers de formes s'affichent dans la saisie semi-automatique.

J'ai essayé d'enregistrer un fichier en tant que type de fichier SpatiaLite puis d'importer l'autre dans cette base de données, mais cela me donne toujours la même erreur.

En outre, ils ont tous deux la même projection (EPSG: 3400 - NAD83).

Réponses

1 Zoltan Aug 17 2020 at 06:53

C'est une simple erreur dans le nom de la table. Remplacez le nom de la table par j_pipeline_inc après INNER JOIN. Essaye ça:

SELECT j_pipeline_midpts.*, j_pipeline_inc.*
FROM j_pipeline_midpts
INNER JOIN j_pipeline_inc
on j_pipeline_midpts.LSD = j_pipeline_inc.LOCATION and
j_pipeline_midpts.Licence_No=j_pipeline_inc.LICENCE_NO