<html>
  <head>

    <meta http-equiv="content-type" content="text/html; charset=utf-8">
  </head>
  <body bgcolor="#FFFFFF" text="#000000">
    Se tutto l'accrocchio che ti ho scritto è andato bene puoi creare
    una vista (una vista materializzata o una tabella fisica) con<br>
    <font color="#cc0000"><small><small>CREATE VIEW {schema}.{nome
          vista} AS<br>
          SELECT p.{id progetto}, {... tutti i vari campi che ti pare
          dalle tabelle che vuoi}, ST_Multi(ST_Collect(a.{geometria
          delle aree}))<br>
          FROM {schema}.{tabella progetti} p<br>
          LEFT JOIN {schema}.rlt_progetti_aree pa<br>
              ON p.id = pa.id_progetti<br>
          INNER JOIN {tabella aree} a<br>
              ON pa.id_aree = a.{id area}<br>
          GROUP BY p.{id progetto}<br>
          ORDER BY p.{id progetto};</small></small></font><br>
    come prima sostituisci alle parti fra {} i campi, tabelle e schema,
    fai i tuoi controlli e fammi sapere.<br>
    Ciao.<br>
    <div class="moz-forward-container"><br>
      <br>
      -------- Messaggio Inoltrato --------
      <table class="moz-email-headers-table" border="0" cellpadding="0"
        cellspacing="0">
        <tbody>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Oggetto:
            </th>
            <td>Re: R: Re: [Gfoss] R: Re: R: Re: DB e creazione
              multipolygons</td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Data: </th>
            <td>Tue, 18 Nov 2014 10:02:07 +0100</td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">Mittente:
            </th>
            <td>Marco Li Volsi <a class="moz-txt-link-rfc2396E" href="mailto:marco.livolsi@gmail.com"><marco.livolsi@gmail.com></a></td>
          </tr>
          <tr>
            <th align="RIGHT" nowrap="nowrap" valign="BASELINE">A: </th>
            <td>GFOSS <a class="moz-txt-link-rfc2396E" href="mailto:gfoss@lists.gfoss.it"><gfoss@lists.gfoss.it></a></td>
          </tr>
        </tbody>
      </table>
      <br>
      <br>
      <meta content="text/html; charset=utf-8" http-equiv="Content-Type">
      <div class="moz-cite-prefix">Ok, dopo 9 ore di sonno (non ancora
        completate), posso continuare.<br>
        Dopo aver creato la tabella di relazione n-n<br>
        <small><small><font color="#cc0000">CREATE TABLE
              rlt_progetti_aree<br>
              (<br>
                id_progetti integer NOT NULL,<br>
                id_aree integer NOT NULL,<br>
                CONSTRAINT pk_rlt_aree_progetti PRIMARY KEY
              (id_progetti, id_aree)<br>
              );</font></small></small><br>
        utilizza questo pezzetto di codice pl/pgsql per popolare la
        tabella<br>
        <font color="#cc0000"><small><small>DO $$<br>
              DECLARE<br>
                  separator text;<br>
                  cur_progetti CURSOR FOR SELECT {id progetto}, {aree
              progetto} FROM {schema}.{tabella progetti} ORDER BY {id
              progetto};<br>
                  cur_aree CURSOR (narea_progetto text) IS SELECT {id
              area} FROM {schema}.{tabella aree} WHERE {nome area} =
              narea_progetto ORDER BY {id area};<br>
                  aree_id integer;<br>
                  aree_values text[];<br>
                  aree_avalue text;<br>
              BEGIN<br>
                  separator := '/';<br>
                  FOR rec_progetti IN cur_progetti LOOP<br>
                      aree_id := rec_progetti.id;<br>
                      aree_values :=
              regexp_split_to_array(rec_progetti.aree, separator);<br>
                      FOREACH aree_avalue IN ARRAY aree_values LOOP<br>
                          FOR rec_aree IN cur_aree(trim(both ' ' from
              aree_avalue)) LOOP<br>
                              EXECUTE 'INSERT INTO
              {schema}.rlt_progetti_aree (id_progetti, id_aree) VALUES
              (' || aree_id ||', ' || rec_aree.{id area} || ')';<br>
                          END LOOP;<br>
                      END LOOP;<br>
                  END LOOP;<br>
              END $$;</small></small></font><br>
        sostituisci alle parti tra {} i nomi dei campi, delle tabelle e
        dello schema delle tue tabelle di progetti e aree.<br>
        Questo codice ha delle limitazioni:<br>
        i nomi delle aree scritte nel campo della tabella progetti deve
        essere PERFETTAMENTE IDENTICO con il nome riportato nella
        tabella delle aree (carattere per carattere, anche le
        maiuscole/minuscole), altrimenti la relazione tra aree e
        progetti verrà saltata<br>
        Esegui il codice in una finestrella SQL di PgAdminIII e dovresti
        avere la tabella di relazione popolata.<br>
        Ciao.<br>
        <br>
        Il 17/11/2014 21:15, <a moz-do-not-send="true"
          class="moz-txt-link-abbreviated"
          href="mailto:nora_tassetti@libero.it">nora_tassetti@libero.it</a>
        ha scritto:<br>
      </div>
      <blockquote
cite="mid:471172574.6049361416255356229.JavaMail.httpd@webmail-37.iol.local"
        type="cite">Ho uno shp con 74 aree  di base e un tabella con
        2600 progetti svolti  in aree che sono combinazioni delle 74
        aree base. Sì entrambe già in PostGis.
        <div>grazie davvero per l'aiuto!</div>
        <br>
        <blockquote> ----Messaggio originale----<br>
          Da: <a moz-do-not-send="true"
            class="moz-txt-link-abbreviated"
            href="mailto:marco.livolsi@gmail.com">marco.livolsi@gmail.com</a><br>
          Data: 17/11/2014 21.11<br>
          A: "GFOSS"<a moz-do-not-send="true"
            class="moz-txt-link-rfc2396E"
            href="mailto:gfoss@lists.gfoss.it"><gfoss@lists.gfoss.it></a><br>
          Ogg: Re: [Gfoss] R: Re: R: Re: DB e creazione multipolygons<br>
          <br>
          <!--
    
  -->
          <div class="moz-cite-prefix">Perchè si possa risolvere questo
            compitino via SQL bisognerebbe creare una tabella di
            relazione n-n e popolarla opportunamente con le informazioni
            prese dal campo AREA.<br>
            2 domandine semplici semplici:<br>
            <ul>
              <li>quanti sono i nomi delle aree?</li>
              <li>le 2 tabelle stanno già su PostGIS?</li>
            </ul>
            Ciao.<br>
            <br>
            Il 17/11/2014 18:37, <a moz-do-not-send="true"
              class="moz-txt-link-abbreviated"
              href="mailto:nora_tassetti@libero.it">nora_tassetti@libero.it</a>
            ha scritto:<br>
          </div>
          <blockquote
cite="mid:569343784.5987361416245834463.JavaMail.httpd@webmail-37.iol.local"
            type="cite">Sì la tua analisi è giusta: Più progetti cadono
            nella stessa area e un 'area può interessare più progetti e
            la relazione è esplicita in formato testuale nel campo AREA
            della tabella dei progetti secondo la metrica  " area1 /
            area2 / area3".
            <div>Delle aree di base ho uno shp con campi ID e NOME_AREA.</div>
            <div>Non capisco come mi conviene procedere. Il tutto deve
              andare in un webGis.</div>
            <div><br>
            </div>
            <div>Grazie e scusate ma con il problema sotto glio occhi
              sembra sempre di dare una spiegazione esaustiva ;)<br>
              <br>
              <blockquote> ----Messaggio originale----<br>
                Da: <a moz-do-not-send="true"
                  class="moz-txt-link-abbreviated"
                  href="mailto:marco.livolsi@gmail.com">marco.livolsi@gmail.com</a><br>
                Data: 17/11/2014 16.11<br>
                A: "GFOSS"<a moz-do-not-send="true"
                  class="moz-txt-link-rfc2396E"
                  href="mailto:gfoss@lists.gfoss.it"><gfoss@lists.gfoss.it></a><br>
                Ogg: Re: [Gfoss] R: Re: DB e creazione multipolygons<br>
                <br>
                <!--
    
  -->
                <div class="moz-cite-prefix">Ciao... Interpreto:<br>
                  Hai una tabella con dentro delle aree:<br>
                  <small><small><font color="#cc0000">id,nome<br>
                        1,pippo<br>
                        2,pluto<br>
                        3,paperino<br>
                        4,paperone<br>
                        5,paperoga<br>
                        6,orazio<br>
                        7,clarabella<br>
                        8,nonna papera</font></small></small><br>
                  Hai anche una tabella con dentro i progetti, vari
                  campi tra cui uno testuale con nomi di area
                  (coincidenti con la precedente) scritti secondo una
                  certa metrica<br>
                  <small><small><font color="#cc0000">campo1,..., aree<br>
                        [valore1],... , "pippo / paperino / clarabella"<br>
                        [valore2],... , "paperino / paperoga"<br>
                        [valore3],... , "pluto / paperone / paperoga"</font></small></small><br>
                  la metrica di questo campo è ben definita<br>
                  <font color="#cc0000"><small><small>[nomearea]+[spazio]+[/]+[nomearea]+[spazio]+...+[nomearea]</small></small></font><br>
                  Secondo la tua descrizione le tabelle delle aree e dei
                  progetti sono in relazione n-n, tuttavia tale
                  relazione è esplicitata in formato testuale in un
                  campo della tabella dei progetti.<br>
                  La mia analisi è giusta?<br>
                  <br>
                  Il 17/11/2014 14:14, <a moz-do-not-send="true"
                    class="moz-txt-link-abbreviated"
                    href="mailto:nora_tassetti@libero.it">nora_tassetti@libero.it</a>
                  ha scritto:<br>
                </div>
                <blockquote
cite="mid:14438963.1087751416230091930.JavaMail.httpd@webmail-02.iol.local"
                  type="cite">
                  <pre wrap="">Ok, certo....scusate avevo dato per scontato che sto lavorando con QGIS e 
PostGIS
Grazie

</pre>
                  <blockquote type="cite">
                    <pre wrap="">----Messaggio originale----
Da: <a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:lucadeluge@gmail.com">lucadeluge@gmail.com</a>
Data: 17/11/2014 14.10
A: <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:nora_tassetti@libero.it">"nora_tassetti@libero.it"</a><a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:nora_tassetti@libero.it"><nora_tassetti@libero.it></a>
Cc: "GFOSS"<a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:gfoss@lists.gfoss.it"><gfoss@lists.gfoss.it></a>
Ogg: Re: [Gfoss] DB e creazione multipolygons

2014-11-17 13:52 GMT+01:00 <a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:nora_tassetti@libero.it">nora_tassetti@libero.it</a> <a moz-do-not-send="true" class="moz-txt-link-rfc2396E" href="mailto:nora_tassetti@libero.it"><nora_tassetti@libero.it></a>:
</pre>
                    <blockquote type="cite">
                      <pre wrap="">ciao a tutti,
Devo costruire una geodatabase di progetti europei con le relative aree in
cui questi progetti sono stati svolti.
Ho la tabella dei circa 2600 progetti  a cui devo associare le aree che
però devo costruire partendo da poligoni di base già digitalizzati (A, B, C
etc) . I poligoni di base devono essere combinati secondo quando scritto in
un campo della tabella dei progetti ( es "A / B / E" oppure "D / A / G") .
Penso di dover creare i 2600 multipolygon e procedere con operazioni di
Join. Come?
Oppure, qualcuno mi sa suggerire una strada migliore?

</pre>
                    </blockquote>
                    <pre wrap="">con che software? sarebbe importante scrivere una mail che tutti
possano capire e non solo che la scrive.
Ricordo a tutti gli iscritti di rispettare la netiquette [0]

</pre>
                    <blockquote type="cite">
                      <pre wrap="">Spero di essere riuscita a spiegarmi.
Grazie in anticipo per l'aiuto!

N.

</pre>
                    </blockquote>
                    <pre wrap="">[0] <a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://it.wikipedia.org/wiki/Netiquette">http://it.wikipedia.org/wiki/Netiquette</a>

-- 
ciao
Luca

<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://gis.cri.fmach.it/delucchi/">http://gis.cri.fmach.it/delucchi/</a>
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="http://www.lucadelu.org">www.lucadelu.org</a>

</pre>
                  </blockquote>
                  <pre wrap="">_______________________________________________
<a moz-do-not-send="true" class="moz-txt-link-abbreviated" href="mailto:Gfoss@lists.gfoss.it">Gfoss@lists.gfoss.it</a>
<a moz-do-not-send="true" class="moz-txt-link-freetext" href="http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss">http://lists.gfoss.it/cgi-bin/mailman/listinfo/gfoss</a>
Questa e' una lista di discussione pubblica aperta a tutti.
I messaggi di questa lista non hanno relazione diretta con le posizioni dell'Associazione GFOSS.it.
666+40 iscritti al 5.6.2014</pre>
                </blockquote>
                <br>
                <br>
              </blockquote>
              <br>
            </div>
          </blockquote>
          <br>
          <br>
        </blockquote>
        <br>
      </blockquote>
      <br>
      <br>
    </div>
    <br>
  </body>
</html>