select id,sum(数量) from table group by id

解决方案 »

  1.   

    商品要变成a1,a2,a3怎么弄主要问得是这个
      

  2.   

    功能函数:
    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
      

  3.   

    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;
      

  4.   

    还要改一下
    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;