我有一个记录表A。
员工号 进门时间 出门时间
1 2014-10-01 07:50:00 2014-10-01 18:10:00
2 2014-10-01 08:10:00 2014-10-01 17:05:00
3 2014-10-01 09:00:00 2014-10-01 12:00:00
1 2014-10-02 18:10:00 2014-10-02 20:00:00
2 2014-10-02 09:00:00 2014-10-02 17:00:00
另外还有一个表B
开始时间 结束时间
2014-10-01 08:00:00 2014-10-01 17:00:00
2014-10-02 08:00:00 2014-10-02 12:00:00
2014-10-02 13:00:00 2014-10-02 17:00:00
我现在要统计出表A的数据。条件是 进门时间 < 结束时间 和 出门时间 > 开始时间,也就是有交集的数据。
那么上面的 “1 2014-10-02 18:10:00 2014-10-02 20:00:00”数据我就不统计。
select * from A where ?????
这个用一个SQL语句能出来么??
多谢各位。
------解决思路----------------------
SELECT * FROM Atry this
WHERE EXISTS(SELECT 1 FROM B
WHERE B.开始时间<A.出门时间 AND B.结束时间>A.进门时间)
------解决思路----------------------
你的条件是 进门时间 < 结束时间 和 出门时间 > 开始时间,也就是有交集的数据
因此 只要存在符合条件的都是合格的记录,这个是EXISTS的用法