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

SQL2008 有列:人、时间、地点,求某人在特定时间内不在特定地点的语句
目前表中情况,共有三列:人、时间、地点

人    时间                   地点
张三 2012-06-26 20:36:10    63419-13952
李四 2012-06-26 20:36:10    63419-13900
王五 2012-06-26 20:36:10    63419-13900
赵六 2012-06-26 20:36:10    63419-13988
张三 2012-06-26 20:55:10    63419-13952
李四 2012-06-26 20:57:10    63419-13900
王五 2012-06-26 21:56:10    63419-13952
赵六 2012-06-26 22:00:55    63419-13951
张三 2012-06-26 23:02:10    63419-13911
李四 2012-06-26 23:05:10    63419-13952
王五 2012-06-26 23:10:10    63419-13877
赵六 2012-06-26 23:08:10    63419-13951

条件一:
找出在2012-06-26 20:40:10之前,地点不等于63419-13952或63419-13951的人,求语句。
满足此条件的有三条
李四 2012-06-26 20:36:10    63419-13900
王五 2012-06-26 20:36:10    63419-13900
赵六 2012-06-26 20:36:10    63419-13988

条件二:
找出在2012-06-26 20:50:10之后,2012-06-26 22:30:00之前,
地点等于63419-13952或63419-13951的人,求语句。
满足此条件的有三条
张三 2012-06-26 20:55:10    63419-13952
王五 2012-06-26 21:56:10    63419-13952
赵六 2012-06-26 22:00:55    63419-13951

条件三:
找出在2012-06-26 22:30:00之后,地点不等于63419-13952或63419-13951的人,求语句。
满足此条件的有两条
李四 2012-06-26 23:05:10    63419-13952
赵六 2012-06-26 23:08:10    63419-13951

最后,找出同时符合上述三个条件的人(只要知道结果是赵六就行,不一定要选出赵六的各个时间地点记录)
赵六 2012-06-26 20:36:10    63419-13988
赵六 2012-06-26 22:00:55    63419-13951
赵六 2012-06-26 23:08:10    63419-13951

因水平有限,恳请给出具体的语句,谢谢。

------解决方案--------------------
create table tb(人 varchar(20), 时间 datetime, 地点 varchar(20))
insert into tb values ('张三', '2012-06-26 20:36:10','63419-13952')