2016-10-10 82 views
0

我正在嘗試使用SQL Developer創建報表。

我有這2個表:

PERSONS (IDPerson, NamePerson) PENALTIES (IDPenalty, DatePenalty, Description, IDPerson)

的表polulated。遞歸記錄oracle

我怎麼能創造如同使用遞歸查詢的SQL

THIS

表?或者有任何其他解決方案? 預先感謝您。

+1

我很想將此作爲[這個問題]重複(http://stackoverflow.com/questions/4686543/SQL查詢到串連列值從 - 多行合預言)。 –

+0

同意 - 幾乎確切的副本。另一個問題不需要連接來檢索與id關聯的「名稱」,但這是一個單獨的不同類型的問題(與列表聚合問題是主要話題)。 – mathguy

回答

2
select p.nameperson as name, p.idperson as id, 
     listagg(to_date(x.datepenalty, 'dd/mm/yyyy') || ' - ' || x.description, '; ') 
             within group (order by x.datepenalty) as penalties 
from  persons p left outer join penalties x 
        on p.idperson = x.idperson 
group by p.idperson; 

(未測試 - 你沒有提供的測試數據。)