[Gfoss] Postgres e View incompatibili con Qgis - vecchio problema

aperi2007 aperi2007 a gmail.com
Mer 1 Giu 2011 19:24:37 CEST


>Ma se provo a fondere la US_+_US_table_view con Reperti_table, dove
>per 1 record di US_+_US_table_view ho N record di Reperti_table, Qgis
>non ha piùun id univoco per caricare le geometrie.
>
>Ho provato il metodo di cui sotto [1], ma oltre ad id e geometria,
>devo portare nella view altri campi come sito, area, us per fare le
>analisi su Qgis, e ovviamente sono obbligato a inserirle nel group_by
>(e questo non lo capisco), quindi non posso più avere id univoco.
>
>
>Quindi, nella sostanza, non capisco come fare un join tra 2 tabelle,
>quando sono in rapporto N:N e fare in modo che la vista sia valida per
>Qgis.
>
>
>Ci può essere una strada percorribile?

quanti record hai nelle tabelle coinvolte ?

se il numero di record e' abbordabile e puoi creare o disponi di una chiave primaria di tipo integer (anche mettendocela te di tipo serial) su tutte le tabelle.

Puoi provare questo giochetto non so' se funziona, dipende da quando e' intelligente (o stupido secondo i punti di vista) qgis.

Potresti fare una composizione a piu' livelli con due viste.
Una che raggruppa come hai gia' fatto.
e poi fai una altra vista che usa la precedente come fonte e in cui metti come campo di output la somma dei valori delle chiavi primarie.

sommandoci anche il numero dei records di una delle due tabelle.

una cosa del tipo:

(id1 + (numrec*id2)

dove numrec e' il numero di record della tabella con numero maggiore di records.

In questa maniera ti costruisci un valore univoco sul prodotto cartesiano delle due tabelle/viste.

Ove poi i soggetti originali (le tabelle) hanno tutti un indice come richiesto da qgis.

Puo' darsi che funzioni ...

si tratta di provare.
Ricordati che devi produrre tutto su un livello sottostante, anche due livelli se serve.
Poi invochi tutto da un livello di vista sovrastante, come indicavo nel thread che citavi.

Se provi facci sapere.

Andrea.




Maggiori informazioni sulla lista Gfoss