Salah satu cara mungkin harus dibuatkan FUNCTION (belum cek dari segi 
performans) :

SQL> CREATE TABLE detail (
  2  group_id NUMBER(1),
  3  kd_product VARCHAR2(4),
  4  qty NUMBER(5));
Table created.

SQL> INSERT INTO detail VALUES (1,'0001',4);
1 row created.
SQL> INSERT INTO detail VALUES (1,'0002',5);
1 row created.
SQL> INSERT INTO detail VALUES (2,'0005',1);
1 row created.
SQL> INSERT INTO detail VALUES (3,'0003',2);
1 row created.
SQL> INSERT INTO detail VALUES (3,'0004',2);
1 row created.
SQL> INSERT INTO detail VALUES (3,'0008',9);
1 row created.

SQL> CREATE OR REPLACE FUNCTION v_2_h (n IN NUMBER) RETURN VARCHAR2 IS
  2    x VARCHAR2(1000);
  3    BEGIN
  4      x := '';
  5      FOR rec IN (SELECT * FROM detail WHERE group_id = n ORDER BY 
kd_product) LOOP
  6        x := x||TO_CHAR(rec.qty)||' '||rec.kd_product||' '||'+ ';
  7      END LOOP;
  8      RETURN RTRIM(x,' + ');
  9    END v_2_h;
 10  /
Function created.

SQL> SELECT v_2_h(group_id) penjualan FROM detail
  2  GROUP BY group_id;

PENJUALAN
-------------------------------------------------------
4 0001 + 5 0002
1 0005
2 0003 + 2 0004 + 9 0008

hth,
AH

abe ashfi wrote:
>
>
> Dear all,
> Tolong saya dunk..
>
> saya punya table detail, datanya
>
> group_id kd_product qty
> 1 0001 4
> 1 0002 5
> 2 0005 1
> 3 0003 2
> 3 0004 2
> 3 0008 9
>
> saya mau query dan hasilnya itu akan tampil secara
> horizontal.
>
> penjualan
> ---------------
> 4 0001 + 5 0002
> 1 0005
> 2 0003 + 2 0004 + 9 0008
>
> gimana ya ??
>
> tolong ya para master oracle indonesia.
>
> Bravo Oracle
>
> __________________________________________________________
> Need a vacation? Get great deals
> to amazing places on Yahoo! Travel.
> http://travel.yahoo.com/ <http://travel.yahoo.com/>
>
>  

Kirim email ke