ThunderCat
таблица structure
поля: id, name, left_key, right_key, level
Когда мне нужно посчитать продажи за месяц, я использую запрос
SELECT *, (SELECT getTreeSum(left_key, right_key, startDate, endDate)) as sum FROM structure
LEFT JOIN sales ON structure.id = sales.structure_id
WHERE left_key >= левый_ключ_необходимого_узла AND right_key <= правый_ключ_необходимого_узла
и все работает, правда делается два запроса, но это не так критично. getTreeSum это моя функция, которая считает сумму всех дочерних узлов за определенный период startDate - endDate.
Но если делать по аналогии за каждый день, то получается длинный запрос (потому что по каждому дню параметры будут startDate = endDate и запрос будет выполнятся долго, потому что получается запросов 1 + количество_дней_в_месяце. Т.е. минимум 28 запросов! Вот я и хочу найти более быстрый запрос