Én ezt úgy oldottam meg, hogy datetime mezőben tároltam a be és kilépéseket, és arra értelmezte a - (mínusz) operátort.
Van valami különösebb oka, hogy szétbontottad a dátumot és az időt?
Ha összevonod, akkor a GROUP nélkül jó eredményt kapsz:
SELECT
i.id,
sum((SELECT time from checkout as o WHERE i.time <= o.time AND i.id = o.id ORDER BY o.time ASC LIMIT 1) - i.time)
FROM checkin as i;
Az általad használt SQL motor dátum függvényei között biztosan találsz olyat, amivel össze tudod kombinálni a két mezőt.
Remélem segít valamit. (A napokban én is pont ezt csináltam)