我有一张表有个字段,Id 自增列,InsertTime 时间,Speed 速率
我想通过速率计算两个时间,第一个是当速率为0的时间,第二是速率不为0的时间
,
select InsertTime from table where Speed='0.00'---时间1
select InsertTime from table where Speed<>'0.00' ----时间2
怎么把两个时间组合成一个表,一个表示开始时间,一个表示结束时间
你的一个记录,一个 id只有一个时间,怎么表示 开始 和结束
select id, '开始时间'=case when Speed='0.00' then InsertTime else '--' end, '结束时间'=case when Speed <>'0.00' then InsertTime else '--' end from table
可以把 这里的空行去掉吗?
NULL 2012-12-18 19:03:00.263
NULL 2012-12-18 01:18:32.180
2012-12-18 11:36:07.99 NULL
NULL 2012-12-18 20:36:06.617
NULL 2012-12-15 12:57:39.893
NULL 2012-12-16 01:23:28.277
select '开始时间',InsertTime from table where Speed='0.00'---时间1
union
select '结束时间',InsertTime from table where Speed<>'0.00' ----时间2
我想把两个时间放到一行,比如
Id 开始时间 结束时间
1 --- -----
这样的,不是把它合并了,不过,谢谢了
@夏忆(夏天的回忆): 对于这样的提问我很无奈,实在是不足以理解楼主的语言。
select InsertTime from table where Speed='0.00'---时间1
select InsertTime from table where Speed<>'0.00' ----时间2
你这样搜索出来的数据肯定是有多条,不止一条,你的需求还是不够清楚
是不止一条啊,就是把一个时间进行分类,当成两个时间,在形成一张表
Id 开始时间 结束时间
1 --- -----
你有别的关键字没说吧。。。
没,就是把这个时间根据Speed的速率统计成两段,一段是Speed为0的时间,一段为>0的时间,感觉逻辑上过不去!
根据以上发言我觉得楼主的需求极度不明确,只有一个id,根据speed去分解时间,没有其他关键字显然是不合理的。
比如:
id InsertTime speed
1 2012-12-16 01:23:28.277 0
2 2012-12-16 01:27:28.277 3
3 2012-12-16 01:31:28.277 0
4 2012-12-16 01:32:28.277 3
这样一个你想拆分成什么样子呢?请写出你的预期结果,不然没办法帮你
其他字段也没有用,这是几张表的连接查询,就把InsertTime分为两个时间,根据Speed
效果是:
StartTime EndTime TimeSpacing(两个时间的间隔)
2012-12-16 01:23:28.227 2012-12-16 01:23:48.227 20