2017-11-03 4 views
0

以下は、私が照会する必要があるデータのサブセットです。 「私が行う必要がある帽子はまだ一致した差分DEPTを持つ任意のルーティングを取り、別の列の値に を連結 です。前のためとした後、以下を参照してください。 はこれを行う方法上の任意の提案は素晴らしいことだ?列内のdupを検索するSQLクエリ?

これは私のクエリです:

select mcrp27, irkitl 
from f0006 
join f3003 
on mcmcu = irmcu 
where mcrp27 <> ' ' 
and irmmcu = ' 20101556' 
order by mcrp27 

前:

ROUTING DEPT 
======= ======= 
R335700 1 
R335800 1 
R335900 1 
R336000 1 
R336100 1 
R336200 1 
R336300 1 
R336500 1 
R435500 1 
R435501 1 
R435600 1 
R435700 1 
R436400 1 
R336100 2 
R336200 2 
R336300 2 
R436400 2 
R436400 3 
R335300 5 
R335300 6 
R331400 7 
R331500 7 
R331600 7 
R331900 7 
R0 7 
R332200 7 
R332400 7 
R332500 7 
R332600 7 
R332700 7 

後:

R335700 1 
R335800 1 
R335900 1 
R336000 1 
R336100 1 2 
R336200 1 2 
R336300 1 2 
R336500 1 
R435500 1 
R435501 1 
R435600 1 
R435700 1 
R436400 1 2 3 
R335300 5 6 
R331400 7 
R331500 7 
R331600 7 
R331900 7 
R0 7 
R332200 7 
R332400 7 
R332500 7 
R332600 7 
R332700 7 
+0

どのようなデータベースですか?つまり、[PIVOT](https://stackoverflow.com/questions/4842726/is-there-an-ansi-specification-for-the-pivot-statement)を使用できますが、それはANSI SQLではありません。 – orhtej2

+0

ROUTINGごとに集計し、そのDEPTの文字列を取得しますか? 'R436400' | '1,2,3'? –

+0

これはJD Edwards(PL/SQL)oracleです...集約クエリはどのように見えますか? –

答えて

0

ROUTINGごとに任意の数のDEPTが存在する可能性があり、SQLクエリは既知の数の列しか返すことができないため、DEPTをカンマ区切りの文字列で返すことをお勧めします。つまり、ROUTINGとDEPTSという2つの列があります。

select routing, listagg(dept, ',') within group (order by dept) as depts 
from mytable 
group by routing 
order by routing; 
関連する問題