2016-04-05 14 views
2

にLISTAGG機能を使用して、私は二つのテーブルオラクル

 
category 
-------- 

id  product  seq_num 
cat12 prod12  0 
cat23 prod12  1 
cat34 prod12  2 

prod 
----- 

sku  prod seq_num 
sku123 prod12 0 
sku234 prod12 1 
sku345 prod12 2 

を持っている私はLISTAGG機能を使用してのような出力を持参しようとしています:

 
output 
------ 
skuid prod catids 
sku123 prod12 cat12,cat23,cat34 
sku234 prod12 cat12,cat23,cat34 
sku345 prod12 cat12,cat23,cat34 

私は一人でカテゴリテーブルを使用する場合は、私が使用することができる午前LISTAGG

SELECT product,LISTAGG(id, ',') 
WITHIN GROUP (ORDER BY id) AS catids 
FROM category 
GROUP BY product;
012:出力は、クエリの下に使用して

(SKUIDなし)適切に集約されます

私はこれをprodテーブルと結合して、希望の出力を得ることができません。 助けてください。

+0

申し訳ございません@Aleksejが不完全に投稿しました。今編集されました。 – anonymous

答えて

1

参加した後、あなたはそれを行うことができます。

SELECT s.sku,t.product, 
     LISTAGG(t.id, ',') WITHIN GROUP (ORDER BY id) AS catids 
FROM category t 
INNER JOIN prod s 
ON(t.product = s.prod) 
GROUP BY t.product,s.sku;