Вниз
Скачать: CL | DM;

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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.02 c
1-1095263206
hgd
2004-09-15 19:46
2004.10.03
Скажите как сделать, чтобы....


14-1095161073
X9
2004-09-14 15:24
2004.10.03
Покупать или нет? MSND .Net 3 CD


8-1089612562
FAUST
2004-07-12 10:09
2004.10.03
Смайлы Delphi


1-1095691197
Goga
2004-09-20 18:39
2004.10.03
Управление объектом


14-1095349300
DimOn2
2004-09-16 19:41
2004.10.03
Вкладка




   Наверх