日期:2014-05-17  浏览次数:20968 次

一个sql查询语句
数据内容如下

CHECKDATE   RESULT BFLAG CHECKTIME

2007-6-1 186.2 1 2007-9-3   15:24:54
2007-6-1 186.2 1 2007-9-3   15:25:08
2007-6-1 186.2 1 2007-9-3   15:28:07
2007-6-1 196.2 1 2007-9-3   15:32:14
2007-6-2 173.2 1 2007-9-3   15:25:08
2007-6-2 173.2 1 2007-9-3   15:28:07
2007-6-2 193.2 1 2007-9-3   15:32:14
2007-6-3 178.3 1 2007-9-3   15:25:08
2007-6-3 178.3 1 2007-9-3   15:28:07
2007-6-3 213.3 1 2007-9-3   15:32:14
要获得每天当中的第一个数据和最后一个数据.上面是按checktime排序的数据
得到内容如下.
2007-6-1 186.2 1 2007-9-3   15:24:54
2007-6-1 196.2 1 2007-9-3   15:32:14
2007-6-2 173.2 1 2007-9-3   15:25:08
2007-6-2 193.2 1 2007-9-3   15:32:14
2007-6-3 178.3 1 2007-9-3   15:25:08
2007-6-3 213.3 1 2007-9-3   15:32:14

------解决方案--------------------
Select * from 表 t where not exists
(Select * from 表 where CHECKDATE=t.CHECKDATE
and CHECKTIME <t.CHECKTIME)
Union all
Select * from 表 t where not exists
(Select * from 表 where CHECKDATE=t.CHECKDATE
and CHECKTIME> t.CHECKTIME)