你可以用 一个聚合函数就可以了  group   by

解决方案 »

  1.   

    是这样的,比如有一张表
    a    b   
    ---------
    p1   001
    p1   002
    p2   003
    p2   004
    p3   005要求汇总得到 
    a    b
    --------
    p1   001,002
    p2   003,004
    p3   005现在只能通过写临时表再逐条统计,但是上面的表名和字段名并不是固定的,也就是需要根据用户的选择进行汇总(即from后的表名和group by后的字段列表不是固定的)
    而系统本身的sum聚合函数不能对字符串进行操作,能否写自定义的聚合函数实现类似对文本进行sum的功能
      

  2.   

    你的是什么意思?是不是以a列中值分组呢?而且既然是字符串,你又怎么能用sum函数呢?你是不是说统计它的个数?
      

  3.   

    我是自己写了一个函数
    CREATE   FUNCTION mRow
    (
    /*
    Thread parameter
    */
        @email nvarchar(500)
    )
    returns  varchar(3000)
    As
    Begin
      declare @answer varchar(3000)
      select @answer = ''
      --select @answer=@answer+','+[a] from data where Email =@email
    select @answer=@answer+','+[a]  from data where Email =@email
      select @answer = right(@answer,len(@answer)-1) where @answer<> ''
      return  @answer  
    End
      

  4.   

    可是使用参数传递表名的话,函数中如何处理
    from语句后面好像是不能加变量的
    如果采用动态生成sql字符串用sp_executesql执行的话如何知道其结果?