表tab1中数据如下: date type  item value
2006-03-13 10:00:00 type1 总数 111397
2006-03-13 11:00:00 type1 总数 88432
2006-03-13 12:00:00 type1 总数 36110
2006-03-13 10:00:00 type1 成功总数 51203
2006-03-13 11:00:00 type1 成功总数 51584
2006-03-13 12:00:00 type1 成功总数 50496将成功总数按照对应的date及type累加到总数上
也就是说:变成:
date type  item value
2006-03-13 10:00:00 type1 总数 111397+51203
2006-03-13 11:00:00 type1 总数 88432 +51584
2006-03-13 12:00:00 type1 总数 36110 +50496
2006-03-13 10:00:00 type1 成功总数 51203
2006-03-13 11:00:00 type1 成功总数 51584
2006-03-13 12:00:00 type1 成功总数 50496用SQL来实现该怎么写?谢谢

解决方案 »

  1.   

    累加条件能不能详细的讲一下
    用DATE可以吗?
      

  2.   


    select date,type,'总数'as type,sum(value)as value from t group by date,type
    union all
    select * from t where type='成功总数'
      

  3.   

    select date,type,'总数'as item,sum(value)as value from t group by date,type
    union all
    select * from t where type='成功总数'
      

  4.   

    select date,type,item,[value]=sum(case when type='总数' then value+(select isnull(sum(value),0) from tab1 where date=a.date) else value end)
    from tab1
      

  5.   

    来晚了
    CREATE TABLE C1([DATE] DATETIME,TYPE NVARCHAR(10),ITEM NVARCHAR(20),VALUE BIGINT)INSERT INTO C1 SELECT '2006-03-13 10:00:00','TYPE1','TOTAL',111397
         UNION ALL SELECT '2006-03-13 11:00:00','TYPE1','TOTAL',88432
         UNION ALL SELECT '2006-03-13 12:00:00','TYPE1','TOTAL',36110
         UNION ALL SELECT '2006-03-13 10:00:00','TYPE1','STOTAL',51203
         UNION ALL SELECT '2006-03-13 11:00:00','TYPE1','STOTAL',51584
         UNION ALL SELECT '2006-03-13 12:00:00','TYPE1','STOTAL',50496SELECT [DATE],TYPE,SUM(VALUE) AS VALUE FROM C1 
    GROUP BY [DATE],TYPE
    UNION
    SELECT [DATE],TYPE,VALUE FROM C1 WHERE ITEM='STOTAL'
    DROP TABLE C1