--效果1
select 编号,时间长度
=case 时间长度/60 when 0 then '' else cast(时间长度/60 as varchar)+'''' end
+case 时间长度%60 when 0 then '' else cast(时间长度%60 as varchar)+'"' end
from 表--效果2
select 编号,时间长度,累计长度=(
select sum(时间长度) from 表 where 编号<=a.编号)
from 表 a

解决方案 »

  1.   

    --测试--测试数据
    create table 表(编号 int,时间长度 int)
    insert 表 select 1,40
    union all select 2,61
    union all select 3,120
    go--效果1
    select 编号,时间长度
    =case 时间长度/60 when 0 then '' else cast(时间长度/60 as varchar)+'''' end
    +case 时间长度%60 when 0 then '' else cast(时间长度%60 as varchar)+'"' end
    from 表--效果2
    select 编号,时间长度,累计长度=(
    select sum(时间长度) from 表 where 编号<=a.编号)
    from 表 a
    go--删除测试
    drop table 表/*--测试结果编号          时间长度             
    ----------- ----------------------
    1           40"
    2           1'1"
    3           2'(所影响的行数为 3 行)编号          时间长度        累计长度        
    ----------- ----------- ----------- 
    1           40          40
    2           61          101
    3           120         221(所影响的行数为 3 行)--*/
      

  2.   

    to zjcxc(邹建):你真牛。。谢谢
      

  3.   

    to zjcxc(邹建):
    如果我想两种效果综合呢?即效果3:
    编号          时间长度   累计长度           
    ----------- ----------------------
    1           40"            40"
    2           1'1"           1'41"
    3           2'             3'41"那应该怎么写?
      

  4.   

    如果我想两种效果综合呢?即效果3:
    select 编号,时间长度
    =case 时间长度/60 when 0 then '' else cast(时间长度/60 as varchar)+'''' end
    +case 时间长度%60 when 0 then '' else cast(时间长度%60 as varchar)+'"' end,
    累计长度=(
    select sum(时间长度)/60 when 0 then '' else cast(sum(时间长度)/60 as varchar)+'''' end
    +case sum(时间长度)%60 when 0 then '' else cast(sum(时间长度)%60 as varchar)+'"' end from 表 where 编号<=a.编号)
    from 表 a
      

  5.   

    to  myflok(阿棋) :
    你的不行,我知道以下这样行:
    select 编号,时间长度
           =case 时间长度/60 when 0 then '' else cast(时间长度/60 as varchar)+'''' end
    +case 时间长度%60 when 0 then '' else cast(时间长度%60 as varchar)+'"' end,
    累计长度
    =case (select sum(时间长度)from 表 where 编号<=a.编号)/60 when 0 then '' else cast((select sum(时间长度)from 表 where 编号<=a.编号)/60 as varchar)+'''' end
    +case (select sum(时间长度)from 表 where 编号<=a.编号)%60 when 0 then '' else cast((select sum(时间长度)from 表 where 编号<=a.编号)%60 as varchar)+'"' end
    from 表 a就不知道有没有更简单的