--效果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
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
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 行)--*/
如果我想两种效果综合呢?即效果3:
编号 时间长度 累计长度
----------- ----------------------
1 40" 40"
2 1'1" 1'41"
3 2' 3'41"那应该怎么写?
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
你的不行,我知道以下这样行:
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就不知道有没有更简单的