create table ring_event ( ring_event_id integer, event_name varchar(20) ring_id integer references ring(ring_id), start_time time, time_per_dog time, ); -- you can then use select a.ring_event_id, a.event_name, a.ring_id, a.start_time, ADDTIME(a.start_time, time_per_dog * count(b.dog_id)) as end_time, count(b.dog_id) as num_dogs from ring_event a, tda b where a.ring_event_id = b.ring_event_id group by a.ring_event_id; -- to get the end_time and number of dogs.