pg.ddx.io  pgsql-it-generale@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: manno_it@libero.it <manno_it@libero.it>
To: pgsql-it-generale@postgresql.org
Subject: PostsegreSQL 9.2 Recursive Queries
Date: Wed, 13 Mar 2013 00:56:02 +0100 (CET)
Message-ID: <31257393.22523601363132562986.JavaMail.defaultUser@defaultHost> (raw)
List-Unsubscribe:  <mailto:majordomo@postgresql.org?body=unsub%20pgsql-it-generale>

Ciao, uso da pochi mesi PostgreSQL. In questo momento ho un problema con l'interrogazione di una tabella organizzata secondo un sistema gerarchico, con un ID e un ID_PARENT. Ho cercato un po' online e compreso che devo utilizzare una WITH RECURSIVE QUERY, cosa che fino a un certo punto funziona, se non per l'ordinamento. Spiego in breve di che cosa ho bisogno.
Ho una tabella con questi campi:ID_BENE (INT PRIMARY KEY etc....)
ID_BENE_PARENT (INT)
NOME varchar(20)
ho bisogno di un report di questo tipo:
ID_BENE_PARENT      ID_BENE     NOMENULL                              1                  casa1                                       2                  garage1                                       3                  giardino3                                       4                  orto0                                       5                  casa25                                       6                  garage25                                       7                  giardino27                                       8                  orto2

Ho provato adattando al mio caso la seguente query (da qui):
WITH RECURSIVE included_parts(sub_part, part, quantity) AS (
    SELECT sub_part, part, quantity FROM parts WHERE part = 'our_product'
  UNION ALL
    SELECT p.sub_part, p.part, p.quantity
    FROM included_parts pr, parts p
    WHERE p.part = pr.sub_part
  )
SELECT sub_part, SUM(quantity) as total_quantity
FROM included_parts
GROUP BY sub_part
Cosa che funziona, se non fosse che non mi viene ordinata nel modo corretto: devo avere in alto il livello 0, cioè il record che ha NULL nel campo ID_PARENT, quindi, a seguire, gli altri record ordinati per ID_BENE con, sotto ognuno, gli eventuali ID_BENE_PARENT.Questo non riesco proprio a farlo.
Qualcuno mi puo indicare dove trovare la soluzione?Mille grazie in anticipo,MB

Message-ID: <31257393.22523601363132562986.JavaMail.defaultUser@defaultHost>
Permalink:  ../31257393.22523601363132562986.JavaMail.defaultUser@defaultHost/
Also on:    postgresql.org/message-id/31257393.22523601363132562986.JavaMail.defaultUser@defaultHost

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-it-generale@postgresql.org
  Cc: manno_it@libero.it
  Subject: Re: PostsegreSQL 9.2 Recursive Queries
  In-Reply-To: <31257393.22523601363132562986.JavaMail.defaultUser@defaultHost>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox