当前位置: 代码迷 >> DB2 >> 求大侠帮忙一条sql语句解决方案
  详细解决方案

求大侠帮忙一条sql语句解决方案

热度:8224   发布时间:2013-02-26 00:00:00.0
求大侠帮忙一条sql语句
我一个张表 结构如下
ID TIME STATUS;
1 10:30 A
2 10:32 B
3 10:33 B
4 10:35 B
5 10:37 C
6 10:50 C
7 11:32 B
8 12:32 B
9 12:52 A
10 12:59 B
11 13:09 A
12 13:19 A
13 13:29 D
14 14:29 D
15 15:29 B
16 16:29 B
17 17:29 B
18 18:29 C
19 19:29 C

我想要到如下结果:

ID STATTIME STOPTIME STATUS
1 10:32 10:35 B
2 11:32 12:32 B
3 15:29 17:29 B



------解决方案--------------------------------------------------------





SELECT STATUS,MAX(TIME),MIN(TIME) FROM (
SELECT *,COALESCE(newid,(SELECT MAX(id) FROM ttw)) AS ID1
FROM (
SELECT *,(SELECT MIN(id) FROM ttw WHERE a.id<id AND a.STATUS<>STATUS)-1 AS newid FROM ttw a)A1)A2
WHERE 
STATUS='B' 
GROUP BY STATUS ,ID1 HAVING MAX(ID1)-MIN(ID)>=1
  相关解决方案