Select datapart(yyyy, 时间)+datapart(mm, 时间), sum(数据) as 数据 from table
group by datapart(yyyy, 时间)+datapart(mm, 时间)

解决方案 »

  1.   

    select convert(char(7),时间,120),sum(数据) as 数据 from table
    group by convert(char(7),时间,120)
      

  2.   

    create table #t (time1 datetime, n int)
    insert #t (time1, n) values ('2004-1-17 5:00:00', 2)
    insert #t (time1, n) values ('2004-1-17 5:00:00', 5)
    insert #t (time1, n) values ('2004-2-17 5:00:00', 3)
    insert #t (time1, n) values ('2004-2-17 5:00:00', 5)
    insert #t (time1, n) values ('2004-3-17 5:00:00', 7)
    insert #t (time1, n) values ('2004-4-17 5:00:00', 9)
    insert #t (time1, n) values ('2004-1-17 5:00:00', 2)
    insert #t (time1, n) values ('2004-1-17 5:00:00', 5)
    insert #t (time1, n) values ('2004-2-17 5:00:00', 3)
    insert #t (time1, n) values ('2004-2-17 5:00:00', 5)
    insert #t (time1, n) values ('2004-3-17 5:00:00', 7)
    insert #t (time1, n) values ('2004-4-17 5:00:00', 9)
    Select convert(varchar(4),datepart(yyyy, time1))+'-'+
           convert(varchar(4), datepart(mm, time1)) as time1, sum(n) as 数据 from #t
    group by convert(varchar(4),datepart(yyyy, time1))+'-'+
             convert(varchar(4), datepart(mm, time1))
      

  3.   

    我用如下语句能正常显示
    SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据
    FROM 表
    GROUP BY CONVERT(char(10), 时间, 120)但我在中间加一条件SELECT CONVERT(char(10), 时间, 120) AS Expr1, SUM(数据) AS 数据
    FROM 表
    WHERE (CONVERT(char(7), 时间, 120) = CONVERT(char(7), '2004 - 7 - 17', 120))
    GROUP BY CONVERT(char(10), 时间, 120)为什么没有数据显示出来?检查过数据中有数据,请问问题出在哪里?
      

  4.   

    Select CONVERT(char(7), '2004 - 7 - 17', 120)的结果是‘2004-7-’
    '2004 - 7 - 17'不是作为日期处理,而是直接作为字符串
    为什么不直接写‘2004-07’呢?
      

  5.   

    select convert(char(7),replace(时间,' ',''),120),sum(数据) as 数据 from table
    group by convert(char(7),时间,120)
      

  6.   

    select convert(char(7),cast(replace(时间,' ','') as datetime),120),sum(数据) as 数据 from table
    group by convert(char(7),时间,120)
      

  7.   

    我觉得按照你的要求,最好创建一个存储过程,当你输入某年时,
    就对其某年的各个月份进个汇总统计。第一步:创建存储过程
    create proc aa
    @date1 int   // 用于输入年份
    as 
    select sum(数据) sum,datepart(mm,时间) date2
     from table where datepart(yy,时间)=@date1 group by datepart(mm,日期) 第二步:执行存储过程,输入所需年份进行汇总。exec  aa  2004
    这样就可以啦