Вниз
Скачать: 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.044 c
1-1095609224
Елис
2004-09-19 19:53
2004.10.03
StrinGrid


1-1095327018
webpauk
2004-09-16 13:30
2004.10.03
Создание события


14-1094821151
AllDer
2004-09-10 16:59
2004.10.03
D4 + Win2000


3-1094040311
zrv
2004-09-01 16:05
2004.10.03
Помогите составить запрос


1-1095440841
Scorpion
2004-09-17 21:07
2004.10.03
Приоритеты потока




   Наверх