谢谢大家
结果集就是:13:10-13:20这个时间段sl是300,14:10-14:30这个时间段数量是700,要把日期转换成字符显示出来,就是这样
name     sl总和                  时间段
a          300       2014-08-01 13:10--2014-08-01 13:20  
a          700       2014-08-01 14:10--2014-08-01 14:20  

解决方案 »

  1.   

    请问结果集中, 为何sl有求和, 但时间段只取了最后一个的时间段?name       sl          rq1                     rq2
    ---------- ----------- ----------------------- -----------------------
    a          100         2014-08-01 13:00:00    2014-08-01 13:10:00
    a          200         2014-08-01 13:10:00    2014-08-01 13:20:00    --> 结果集sl有求和, 时间段只有这行的rq1,rq2
    a          300         2014-08-01 14:00:00    2014-08-01 14:10:00
    a          400         2014-08-01 14:10:00    2014-08-01 14:20:00   --> 结果集sl有求和, 时间段只有这行的rq1,rq2
      

  2.   

    SELECT t.NAME,t.sl 'sl总和',rq1 + '--' + rq2 '时间段' FROM 
    (
    SELECT  [name],SUM(sl) 'sl', CONVERT(VARCHAR(19),MAX(rq1),20) 'rq1'  , CONVERT(VARCHAR(19),MAX(rq2),20) 'rq2' 
     FROM test GROUP BY [name],CONVERT(VARCHAR(13),rq1,20),CONVERT(VARCHAR(13),rq2,20)
    ) t
    结果:
      

  3.   


    这个应该能满足你的要求了,如果是楼上说的,就把 MAX改成Min
      

  4.   

    SELECT 
    name,
    SUM(sl)AS sq总和,
    convert(varchar(20),max(rq1),20)+'-'+convert(varchar(20),MAX(rq2),20)时间差 FROM #T3
    GROUP BY DATEPART(hour,rq1),name