数据库表中字段及记录如下:SQL 语句查询出以下记录后,想将字段 C 内容相同的记录合并为一条记录并将字段D值相加,请问应如何得到  ?  
     
字段     A               B              C                   D
                                                        
5 2011-6-13 10:24:17    ddddd          1000000000000  
6 2011-6-13 13:34:55   ooooooiiiiii     7878         
17 2011-6-21 10:46:50    777              7777
18 2011-6-21 13:40:45    XX报账              777
11 2011-6-20 10:50:22    11111               112
13 2011-6-20 9:17:07    XX报账              999
14 2011-6-20 9:18:27    888              8888
15 2011-6-20 9:25:01    888              8888
16 2011-6-20 9:27:36     1                1

解决方案 »

  1.   

    select c,sum(d) as d
    from tablename
    group by c
      

  2.   


    select max(A) A,max(B) B,C,sum(D) D
    from tb
    group by C
      

  3.   


    SELECT A,B,C,(SELECT SUM(D) FROM TB WHERE C=T.C) D
     FROM TB T
    WHERE A=(SELECT MAX(A) FROM TB WHERE C=T.C)
      

  4.   

    select C , sum(D) from tb group by C
    这个只是查,但不知道你要的合并A B 字段如何处理
      

  5.   


    create table #t(a varchar(50),b varchar(50),c varchar(50),d varchar(50))insert into #t 
    select '5', '2011-6-13 10:24:17' ,'ddddd', '1000000000000' union all 
    select '6', '2011-6-13 13:34:55', 'ooooooiiiiii' ,'7878'   union all
    select '17', '2011-6-21 10:46:50' ,'777', '7777' union all
    select '18', '2011-6-21 13:40:45', 'XX报账', '777' union all
    select '11', '2011-6-20 10:50:22', '11111', '112' union all
    select '13', '2011-6-20 9:17:07', 'XX报账', '999' union all
    select '14', '2011-6-20 9:18:27' ,'888','8888' union all
    select '15', '2011-6-20 9:25:01', '888', '8888' union all
    select '16', '2011-6-20 9:27:36' ,'1', '1' 
    select max(a),max(b),sum(cast(d as numeric(18,2))),c from #t group by c-------------------------------------------------- -------------------------------------------------- --------------------------------------- --------------------------------------------------
    16                                                 2011-6-20 9:27:36                                  1.00                                    1
    11                                                 2011-6-20 10:50:22                                 112.00                                  11111
    17                                                 2011-6-21 10:46:50                                 7777.00                                 777
    15                                                 2011-6-20 9:25:01                                  17776.00                                888
    5                                                  2011-6-13 10:24:17                                 1000000000000.00                        ddddd
    6                                                  2011-6-13 13:34:55                                 7878.00                                 ooooooiiiiii
    18                                                 2011-6-21 13:40:45                                 1776.00                                 XX报账(7 row(s) affected)不知道你如何处理其他两个字段,取了最大
      

  6.   

    select C , sum(D) from tb group by C
      

  7.   

    select max(A) A,max(B) B,C,sum(D) D from tb
    group by C