Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
ВнизSQL Найти похожие ветки
← →
Senator (2004-09-01 10:53) [0]Такой вопрос:
есть таблица
ID|Cost|Parent
--------------
1 |10 |null
2 |20 |1
3 |30 |1
мне надо получить результат запроса, такого вида
ID|Cost
--------
1 | 60
2 | 20
3 | 30
Т.е. по ID надо получить сумму как родную, так и дочерних ID.
Помогите написать запрос....
← →
Ozone © (2004-09-01 10:58) [1]Тупо конечно, но может в OnGetText эту сумму искать...
← →
Ozone © (2004-09-01 10:58) [2]Тупо конечно, но может в OnGetText эту сумму искать...
← →
Роман Снегирев (2004-09-01 11:03) [3]а че такое 60,20,30 я что то логики здесь не набдюдаю
← →
Senator (2004-09-01 11:06) [4]Мне нужен чистый SQL без привязки к Delphi.
Я понимаю что нужно использовать объединение таблицы с самой собой.
select
t1.id,
t1.cost+sum(t2.cost)
from
tb2 t1
left join tb2 t2 on t2.parent=t1.id
group by
t1.ID,t1.cost
но при суммировании кроме первой записи, у которой есть потомки получаються null, т.к. число+null=null
← →
Senator (2004-09-01 11:07) [5]to Снегирев:
60=10+20+30
20=20
30=30
говорю, ж нужно получить сумму как свою так и потомков (Parent)
← →
Роман Снегирев (2004-09-01 11:09) [6]назначь для поля parent какое-нибудь значение по умолчанию, пора бы уж к этому привыккнуть (в смысле не допускать значений null)
← →
Senator (2004-09-01 11:09) [7]условия вопроса изменить низзя
← →
Sergey13 © (2004-09-01 11:15) [8]2 [6] Роман Снегирев (01.09.04 11:09)
И что это решит?
2Senator (01.09.04 10:53)
Тут наверное только ХП поможет, а если еще и уровней больше 2 то и подавно. Не поддерживает ИБ "деревянные" запросы.
← →
Плохиш © (2004-09-01 11:18) [9]
> Senator (01.09.04 11:06) [4]
> но при суммировании кроме первой записи, у которой есть
> потомки получаються null, т.к. число+null=null
Если в IB есть функция, типа COALESCE, то использовать её для замены null на 0
← →
Senator (2004-09-01 11:43) [10]to Плохиш:
Огромное спасибо...помогло
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2004.10.03;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.041 c