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


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
- QGIS : https://qgis.org/it/site/