表结构如下 
 ID     vvalue         Code
 1      长白 2         11
 2      大约克 3       11
 3      长白 11        33
 4      大约克 1       33
 5      杜洛克 4       33现在我要得到如下结果         vvalue                     Code
       长白 2  大约克 3              11
       长白 11 大约克 杜洛克 4        33就是把code 相等的行的VValue 列的值相加 请人指点下,谢谢

解决方案 »

  1.   

    用游标取出表中记录,根据CODE联接VVALUE,写个大致过程吧
    DECLARE CR CURSOR FOR
    SELECT VVALUE,CODE FROM T ORDER BY CODE
    OPEN CR
    FETCH NEXT FROM CR INTO @VVALUE,@CODE
    SELECT @VVALUE1='',@CODE1=@CODE
    WHILE @@FETCH_STATUS=0
    BEGIN
    IF (@CODE1=@CODE)
    BEGIN
    SELECT @VVALUE1=@VVALUE1+@VVALUE
    END
    ELSE
    BEGIN
    INSERT INTO #TEMP(VVALUE,CODE) VALUES(@VVALUE1,CODE1)--#TEMP和T表同构
    END
    END
    CLOSE CR
    DEALLOCATE CR
    --大概就这意思,没测
      

  2.   

    用游标取出表中记录,根据CODE联接VVALUE,写个大致过程吧
    DECLARE CR CURSOR FOR
    SELECT VVALUE,CODE FROM T ORDER BY CODE
    OPEN CR
    FETCH NEXT FROM CR INTO @VVALUE,@CODE
    SELECT @VVALUE1='',@CODE1=@CODE
    WHILE @@FETCH_STATUS=0
    BEGIN
    IF (@CODE1=@CODE)
    BEGIN
    SELECT @VVALUE1=@VVALUE1+@VVALUE
    END
    ELSE
    BEGIN
    INSERT INTO #TEMP(VVALUE,CODE) VALUES(@VVALUE1,CODE1)--#TEMP和T表同构
    END
    SELECT @CODE1=@CODE--少了这句
    END
    CLOSE CR
    DEALLOCATE CR
    --大概就这意思,没测
      

  3.   

    --先建立函数
    create function f_t(@type int)
    returns varchar(500)
    as
    begin
         declare @sql varchar(500)
         select @sql=isnull(@sql,'')+name from 表名 where type=@type
         return @sql
    end
    go
    --然后在存储过程中执行语句
    select type,names=dbo.f_t(type),sumscore=sum(score) from 表名 group by type,dbo.f_t(type)已测试
      

  4.   

    --先建立函数 
    create function f_t(@code int) 
    returns varchar(500) 
    as 
    begin 
        declare @sql varchar(500) 
        select @sql=isnull(@sql,'')+vvalue from 表名 where code=@code 
        return @sql 
    end 
    go 
    --然后在存储过程中执行语句 
    select code,names=dbo.f_t(code)from 表名 group by code已测试