[Gfoss] Fwd: SQL Update con SQLite / spatialite

gabriele a matteelli.it gabriele a matteelli.it
Ven 30 Set 2011 10:55:19 CEST


> Salve a tutti,
>
> sto facendo i primi passi con Spatialite, ed in generale con sqlite. Ho
> fatto gli esercizi presenti sul cookbook di Alessandro Furieri, ma mi
> sto impantanando alle prime variazioni su tema.
>
> Per esser chiaro, ho scaricato dal sito dell'istat gli shapefile del
> censimento 2011, e li ho utilizzati per seguire la procedura del
> cookbook. Poichè il censimento 2011 è in corso, manca il campo "pop2011"
> nella table (come d'altronde negli shape del 2008 e 2010, forse solo per
> aggiornamento dei confini comunali e l'inserimento di nuove, utilissime
> provincie!!!).
>
> Allora ho pensato che poteva essere utile inserire una colonna "pop2001"
> nella mia tabella spaziale già popolata, ed infilarci i dati di
> popolazione presenti nella table dello shapefile com2001_g.
>
> Ho provato con questo (metto solo il tentativo che mi pare più vicino ad
> una buona soluzione, tra i mille fatti):
>
> UPDATE comuni2011
> SET pop2001 = com2001_g.pop2001
> WHERE comuni2011.nome_com=com2001_g.nome_com;
>
> Mi restituisce il seguente errore:
>
> SQL error: no such column: com2001_g.pop2001
>
> Se invece uso:
>
> UPDATE comuni2011
> SET pop2001 = com2001_g.pop2001
> FROM com2001_g
> WHERE comuni2011.nome_com=com2001_g.nome_com;
>
> mi dice:
>
> SQLite error: near ".": syntax error
>
> Premetto che ho caricato i dati istat come virtual shapefile.
>
> Sbaglio qualcosa o ci sono delle limitazioni di sqlite?
>
> Grazie,
>
> Carlo
>
> _______________________________________________
> Iscriviti all'associazione GFOSS.it: http://www.gfoss.it/drupal/iscrizione
> Gfoss a lists.gfoss.it
> http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss
> Questa e' una lista di discussione pubblica aperta a tutti.
> Non inviate messaggi commerciali.
> I messaggi di questa lista non rispecchiano necessariamente
> le posizioni dell'Associazione GFOSS.it.
> 527 iscritti al 7.7.2011

Visto che la mail precedente l'ho inviata solo a Carlo, riposto la
risposta in lista...

Forse prendo un granchio, ma secondo me la sintassi giusta è la seguente:

UPDATE comuni2011
SET pop2001 = (select com2001_g.pop2001
FROM com2001_g
WHERE comuni2011.nome_com=com2001_g.nome_com);

Ciao,
Gabriele



Maggiori informazioni sulla lista Gfoss