большинство sql баз данных позволяют использовать результат работы select в качестве таблицы во from (либо определять такие вьююхами).
про добавление суток, оператор
LEFT JOIN позволяет объединить таблицы во from таким образом что записи левой таблицы будут в результате обязательно, когда как записи от правой только при совпадении условия в ON (аналогично есть RIGHT JOIN, только подсчет будет для правой таблицы)
соответственно проверяешь нужное поле на null делаешь плюс один
про рекурсивные добавления не понял