还要改一下
select id,sum(数量),substr(get_shop(id),2) "商品" from table group by id
CREATE OR REPLACE Function get_shop(c_id in varchar2) return varchar2 is
CURSOR c_do IS select 商品 from table where id=c_id;
v_DO c_do%ROWTYPE;
v_name varchar2(200);
begin
OPEN c_do;
LOOP
FETCH c_do INTO v_DO;
EXIT WHEN c_do%NOTFOUND;
BEGIN
v_name:=v_name||','||v_do.商品;
end;
END LOOP;
CLOSE c_do;
return v_name;
end;
select id,sum(数量),get_shop(id) "商品" from table group by id
再写个函数
CREATE OR REPLACE Function get_shop(c_id in varchar2) return varchar2 is
CURSOR c_do IS select 商品 from table where id=c_id;
v_DO c_do%ROWTYPE;
v_name varchar2(200);
begin
OPEN c_do;
LOOP
FETCH c_do INTO v_DO;
EXIT WHEN c_do%NOTFOUND;
BEGIN
v_name:=v_name||v_do.商品||',';
end;
END LOOP;
CLOSE c_do;
return v_name;
end;
功能函数:
CREATE OR REPLACE FUNCTION GET_NAME(ID IN VARCHAR2) RETURN VARCHAR2 IS
RE_NAME VARCHAR2(100);
IN_NAME VARCHAR2(100);
TYPE CUR_NANE IS REF CURSOR;
CR_PRONAME CUR_NANE;
BEGIN
OPEN CR_PRONAME FOR SELECT A.BUZITYPENAME FROM BUZI_TYPE A WHERE A.BUZITYPECODE = ID;
LOOP
FETCH CR_PRONAME INTO IN_NAME;
EXIT WHEN CR_PRONAME%NOTFOUND;
RE_NAME := RE_NAME || ',' || IN_NAME;
END LOOP;
CLOSE CR_PRONAME;
RETURN(RE_NAME);
EXCEPTION
WHEN OTHERS THEN
RE_NAME := '';
RETURN(RE_NAME);
END GET_NAME;
调用:
select COUNT(T.BUZITYPECODE),GET_NAME(T.BUZITYPECODE) AS AA from buzi_type t
GROUP BY T.BUZITYPECODE