如:表1 A_B(NIAN CHAR(4),YUE CHAR(2),SL DECIMAL(14,2),P CHAR(20))   2006-01,01,100,AEWE11121 
   2006-01 ,01,2000,1234
   2006-01,01,1000, 1234
   2006-02,01,1000, 1234想得到如下: 
      2006-01,01,100,AEWE11121 
      2006-01 ,01,3000,1234
       2006-02,01,1000, 1234请高手赐教

解决方案 »

  1.   

    select NIAN ,YUE ,sum(SL) ,P from table group by NIAN,YUE,P
      

  2.   

    SELECT DISTINCT NIAN,YUE,SL,P
       FROM A_B
       GROUP BY NIAN,YUE,SL,P
      

  3.   

    如:得到:  2006-01,01,3100,AEWE11121,1234
                 2006-02,01,1000, 1234
      

  4.   

    错了。
    SELECT NIAN,YUE,sum(SL) SL,P
       FROM A_B
       GROUP BY NIAN,YUE,P
      

  5.   

    老兄:是这样的。          2006-01,01,3100,AEWE11121,1234
                                 2006-02,01,1000, 1234
      

  6.   

    create table A_B(NIAN CHAR(7),YUE CHAR(2),SL DECIMAL(14,2),P CHAR(20))
    insert A_B
    select '2006-01','01',100, 'AEWE11121' union all
    select '2006-01','01',2000,'1234' union all
    select '2006-01','01',1000,'1234' union all
    select '2006-02','01',1000,'1234'
    select * from A_B
    gocreate function F_Str(@NIAN char(7),@YUE char(2))
      returns varchar(250)
    as
    begin
        declare @sql varchar(1000)
        set @sql=''
        select @sql=@sql+','+ Rtrim(P) from A_B where [NIAN]=@NIAN and [YUE]=@YUE group by P    --STUFF ( character_expression1 , start , length ,character_expression2). 
        --字符串char1从start开始的第length位字符用char2字符串代替
        return  stuff(@sql,1,1,'')
    end
    goselect NIAN,YUE,sum(sl) as SL,dbo.F_Str(NIAN,YUE) txt from A_B group by NIAN,YUEdrop function F_Str
    drop table A_B
      

  7.   

    很简单.先update,再insert.语句我就不写了//