On Wed, 23 Feb 2005 23:12:41 -0000, Lloyd Thomas
<[EMAIL PROTECTED]> wrote:
> Dennis,
> Thanks for you help so far. I think it is easier for PHP to select
> the MAX event. The problem I now have is if there is no records for an hour,
> PHP will through up an error because MAX must have at least one record to
> process, even if it is 0.
>
Lloyd,
You can force a zero record if there no events using a union like this:
select minutes.i as minute, count(*) as events
from
(select (event_time / 60) % 60 as begin_minute,
((event_time + duration) / 60) % 60 as end_minute
from event_data)
outer join integers60 as minutes
where
case
when begin_minute <= end_minute then
begin_minute <= minutes.i and minutes.i <= end_minute
else
begin_minute <= minutes.i or minutes.i <= end_minute
end
group by minute
union
select 0, 0 where not exists (select * from event_data)
This will give a single row with a count of zero if there are no
events, or the usual set of 60 rows if there are one or more events.
Dennis Cote