QGIS: JOIN TABELLARE AL VOLO

In queste breve blog post voglio far vedere come realizzare una JOIN tabellare, tra due layer importati in QGIS, attraverso l’uso delle espressioni e quindi senza passare da Proprietà Layer - JOIN.

Per realizzare una JOIN tabellare occorre che le due tabelle abbiano un campo (stesso tipo: testo, numerico) che contenga valori uguali (o meglio valori identici: Italia e ITALIA non sono valori identici e quindi la JOIN fallirebbe; un campo definito testo che contenesse ‘123’ (testo) non puo’ essere collegato con un campo numerico che contenesse 123).

Una JOIN tabellare al VOLO supera egregiamente questi limiti in quanto le espressioni di QGIS permettono di simulare un falso numero '123' in un vero numero usando la funzione to_int('123')123 o rendendo identici due parole UPPER('Italia')ITALIA.

Capito come ovviare a questo grosso problema del tipo di campo e del contenuto, vediamo come realizzare una JOIN al volo usando solo le espressioni di QGIS, ecco l’espressione da usare (per esempio per etichettare o tematizzare):

attribute(
get_feature (
layer:='referendum',
attribute:='regione',
value:= upper(attribute($currentfeature,'den_reg'))),'%h12')||' %'

dove:

qui il file referendum.csv con i dati del referendum Costituzionale 2020 (Affluenza regioni);

qui lo shapefile delle regioni ISTAT

referendum.csv
tabella attributi shapefile Regioni ISTAT

risultato della JOIN:

in realtà l’espressione usate per ottenere il risultato dello screen di sopra è:

richiamando non un solo attributo ma due.


[aggiornato a maggio 2021] Per chi volesse approfondire l’uso delle espressioni, qui trovate un video-corso con 30 video e 23 ore di lezioni. (per info: pigrecoinfinito@gmail.com)


RIFERIMENTI

Pubblicità

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.