2016-10-10 18 views
0

現在、SQL Developerを使用してレポートを作成しようとしています。テーブルがpolulatedさ

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



は、私はこれらの2つのテーブルを持っています。再帰レコードoracle

私はSQLで再帰クエリを使用して

THIS

のような表を作成することができますどのように?それとも他の解決策がありますか? ありがとうございます。

+1

私は、[この質問](http://stackoverflow.com/questions/4686543の重複としてフラグこのように誘惑しています/ sql-query-to-concatenate-column-values-from-multiple-rows-in-oracle)を参照してください。 –

+0

合意 - ほぼ正確な重複。もう1つの質問では、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; 

(未テスト - あなたは、テストデータを提供していませんでした。)