Domanda

Questa domanda è già stata posta in StackOverflow e altrove:

  1. E 'possibile fare una query SQL ricorsiva?
  2. requetés récursives avec les CTE - Esempi avec SQLServer 2003

Ma mi piacerebbe fare questo lavoro per una query report in HP Quality-Centro 10.

Chiunque con intuizioni in questi tecnicismi?


Un semplice controllo:

with t1 (parent, child) as 
(select * from all_lists t where t.al_father_id = '2') select * from t1

QC riporta "Quality Center non può eseguire la query perché contiene affermazioni non valide".

Mentre con il seguente errore di battitura intenzionale

select * from all_lists t wher t.al_father_id = '2'

QC riporta "La query SQL ... non è riuscito a correre, con il seguente errore: Impossibile SQL ... [Mercury] [Oracle driver JDBC] [Oracle] ORA-00933:. Comando SQL non propriamente finita"

Quindi credo che risponde a due domande:

  1. il server è Oracle (anche se non dà la versione)
  2. con non è consentito tramite l'interfaccia di controllo di qualità
È stato utile?

Soluzione

Ok, capito:

select      SYS_CONNECT_BY_PATH (al_description,' :: ')
from        all_lists
start with  al_father_id = '2'
connect by  prior al_item_id = al_father_id

Questa è la soluzione alla mia domanda. Grazie a a_horse_with_a_name per i commenti che mi ha motivato a cercare più in profondità.

Fab.

Sono ancora aperto a commenti per i viaggi di miglioramento o di ulteriori e trucchi del mestiere - come ad esempio: dove posso trovare un punto di riferimento per il CONNECT BY funzioni correlate come SYS_CONNECT_BY_PATH. Sono sicuro che ha un paio di amici che sarei desideroso di conoscere.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top