Всем привет!
Такая задача. Надо найти общую сумму популяции.
Надо именно сделать через рекурсию.
Пытаюсь так сделать:
CREATE PROCEDURE `GetChildrenObjects3`
(IN `Parent` BIGINT, OUT `total` BIGINT)
BEGIN
DECLARE population int;
DECLARE total2 int DEFAULT 0 ;
DECLARE irows int ;
SET irows = (SELECT COUNT(d.Population) FROM MDepartments d
LEFT JOIN Localities l ON d.LocalityId = l.Id WHERE d.ParentId = Parent AND Type = 0);
IF irows>=1 THEN
SET total = (SELECT SUM(d.Population) FROM MDepartments d
LEFT JOIN Localities l ON d.LocalityId = l.Id WHERE d.ParentId = Parent AND Type = 0);
SELECT d.MOId, SUM(d.Population) FROM MDepartments d
LEFT JOIN Localities l ON d.LocalityId = l.Id WHERE d.ParentId = Parent AND Type = 0;
CALL GetChildrenObjects3(d.MOId);
ELSE
SET total = NULL;
END IF;
END
Есть таблицы, и у них может быть дочерние объекты. Надо и туда заходить, и суммировать популяцию на родительские популяции.
Помогите как?