![]() |
Модераторы: skyboy |
![]() ![]() ![]() |
|
qpile |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 115 Регистрация: 12.8.2009 Репутация: нет Всего: нет |
Есть три таблицы :
categories (category_id INTEGER PRIMARY KEY AUTOINCREMENT ,parent_id INT DEFAULT NULL,name text,type int,FOREIGN KEY(parent_id) REFERENCES categories(category_id));"); accounts (account_id INTEGER PRIMARY KEY AUTOINCREMENT , name text);"); tranzactions +"(transaction_id INTEGER PRIMARY KEY AUTOINCREMENT ,account_id int,category_id int,t_date date,amount float," +"FOREIGN KEY(account_id) REFERENCES accounts(account_id),FOREIGN KEY(category_id) REFERENCES categories(category_id));"); Назначение их примерно понятно. Транзакции-записываются расходы доходы, а в категории записываются категории расходов/доходов. Задача , нужно посчитать доходы по каждой родительской категории(category_id) но при этой учесть, что у родительской категории есть дети(parent_id) и эти доходы должны быть тоже учтены..Как оптимально это обсчитать? |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 15 Всего: 260 |
чтоб за один запрос легко суммировать данные для категории и всех подкатегорий, вместо списка смежности(adjancy list - как у тебя сейчас: поле "ИД родителя") лучше использовать nested sets(поискай в google). в текущем варианте структуры без рекурсивной хранимой функции или нескольких запросов(сначала в несколько проходов вытягиваем только дочерние категории рекурсивно ИЛИ за один запрос вытягиваем ВСЕ категории, формируем дерево и отбираем только дочерних по отношеини к какой-то категории; затем для списка категорий вытягиваем операции и суммируем)
|
|||
|
||||
Zloxa |
|
|||
![]() Чо? ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3473 Регистрация: 12.9.2008 Репутация: 53 Всего: 161 |
qpile, ваша платформа предоставляет возможность использовать рекурсивные или же иерархические запросы?
Добавлено через 1 минуту и 9 секунд упс, увидел что платформа таки указана. Вопрос снят. -------------------- Достоверно известно, что 89% людей доверяют статистике взятой с потолка ![]() |
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Составление SQL-запросов | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |