Semblable aux questions déjà posées sur les fichiers .dbf, j'essaie de joindre des fichiers .csv à une couverture .gdb ou shapefile dans QGIS. Les tables ajoutées à QGIS avant la jointure semblent correctes, mais une fois la jointure terminée, la table fusionnée a des valeurs NULL pour tous les champs joints. La même chose se produit avec une variété de tables différentes, que je me joigne à un fichier de formes ou à un fichier .gdb.
J'exécute QGIS 2.0.1 sur un OSX 10.8.5. Les fichiers de table d'origine sont contenus au format .mdb, j'ai donc acheté et utilisé la visionneuse MDB ACCDB pour les exporter vers .CSV Le fait qu'ils soient corrects lorsqu'ils sont vus séparément me porte à croire que le problème vient de la procédure de jointure, tables elles-mêmes.
Suggestions?
trim(oldField)
fonctionnalité QGIS .Réponses:
Les fichiers .csv dans QGIS importent par défaut toutes les données sous forme de chaînes. Vous devez créer un fichier texte .csvt qui indique à QGIS quelles colonnes doivent être spécifiées en tant que types de données.
Cité de: http://anitagraser.com/2011/03/07/how-to-specify-data-types-of-csv-columns-for-use-in-qgis/
Vos données seront alors du même type et la jointure devrait fonctionner.
la source
Il est préférable de vous assurer que les deux champs ont le même type de données.
Le type de champ ne peut pas être modifié pour les fichiers de formes. Mais il est facile de créer un nouveau champ de texte vide et de le rendre égal au champ entier.
Vous pouvez utiliser une expression de calculatrice de champ qui ressemble à quelque chose:
tostring( "INT_FIELD" )
et simplement remplacerINT_FIELD
par le nom du champ entier réel.Vous pouvez également facilement modifier une valeur d'attribut de couche CSV à partir du texte <-> nombre .
MISE À JOUR
Si vous obtenez des valeurs nulles, vous pouvez essayer de conserver la jointure, mais simplement fermer et rouvrir cette table d'attributs pour voir si les valeurs jointes sont là (ou même fermer / rouvrir QGIS).
J'ai pu joindre avec succès un fichier csv à un fichier de formes avec un mélange de types de champs, donc la chaîne vs l'entier ne devrait pas être le problème.
MISE À JOUR 2
On dirait que pour se débarrasser des valeurs nulles, elles doivent en fait avoir un enregistrement correspondant dans la table correspondante à partir de laquelle les jointures sont effectuées. Mais dans l'image ci-dessous, vous pouvez voir que certains ont un enregistrement correspondant:
la source