On 5/18/2011 4:17 PM, Pavel Ivanov wrote:
>> I need help to build a statement in order to select all days free from
>> events in a specific time range.
>
> This kind of task should be implemented in your application. SQL
> wasn't intended for and can't solve such tasks.

Sounds like a challenge:

select startGap, min(endGap) from
(
   select date(e1.endDate, '+1 day') startGap, date(e2.startDate, '-1 
day') endGap
   from (select startDate, endDate from events
         union all
         select '' startDate, date('2011-01-01', '-1 day') endDate) e1,
        (select startDate, endDate from events
         union all
         select date('2011-02-01', '+1 day') startDate, '' endDate) e2
   where startGap <= endGap and startGap >= '2011-01-01' and endGap <= 
'2011-02-01'
     and not exists (
       select 1 from events where startDate between startGap and endGap
         or endDate between startGap and endGap)
)
group by startGap;

-- 
Igor Tandetnik

_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to