我想限制用户在下表中已经存在的开始和结束日期之间输入开始和结束日期。
例如:用户尝试插入日期开始日期 2/6/2012和结束日期 4/6/2012;此日期位于下表中的事件 e2 之间,因此不允许用户插入它。
------------------------------------------------------------------------
id event startdate enddate
------------------------------------------------------------------------
11 e1 31/5/2012 1/6/2012
12 e2 1/6/2012 4/6/2012
13 e3 5/6/2012 6/6/2012
14 e4 15/6/2012 16/6/2012
我想查找与其他事件冲突的事件的计数。
select tbl.startdate, count(tbl.startdate)
from YourTable tbl
where
exists(select * from YourTable tbl2 where ((tbl2.startdate>=tbl.startdate AND tbl2.startdate<=tbl.enddate) OR (tbl2.enddate>=tbl.startdate AND tbl2.enddate<=tbl.enddate)))
group by tbl.startdate