![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
кол-во подчиненных записей... [Paradox]
Paradox © (2004-12-05 14:33:00)select A.id as number,
(select count(B.id) from ierarx B where B.parent_id = A.id_num) as kidscount
from ierarx A
where A.parent_id = 0
Не могу понять почему в kidscount всегда получается ноль ?
В MSSQL такая конструкция работает, а в Local SQL - не получается..может я что-то не так делаю
или в Local SQL такое вообще нельзя писать ?
ЮЮ (2004-12-07 04:21:00) [1]После исправления ряда ошибок и указания имен тех полей, которые реально существуют в таблмце получим:
SELECT
Parent.Id_num Number, Count(Child.Id_num) kidscount
FROM
ierarx Parent
LEFT JOIN ierarx Child ON Child.id_ierar = Parent.Id_num
WHERE
Parent.id_ierar = 0
GROUP BY Parent.Id_num
ЮЮ (2004-12-06 13:13:00) [2]> ЮЮ © (06.12.04 13:10) [14]
kolesov <скотина, сволочь и т.д.> msun точка ру
ЮЮ (2004-12-06 13:10:00) [3]>(если время есть...)
У меня уже 20 местного, валю домой. Но выслать можешь - утром гляну :)
Skier (2004-12-06 13:08:00) [4]>ЮЮ © (06.12.04 13:02) [12]
нет.
могу выслать табличку (если время есть...), там 30 кб всего...
ЮЮ (2004-12-06 13:02:00) [5]А что, [5]+[6] тоже не работает?
Skier (2004-12-06 12:47:00) [6]>ЮЮ © (06.12.04 12:21) [10]
Понятно...а из моей ситуации выход есть какой-нибудь ?
ЮЮ (2004-12-06 12:21:00) [7]>Почему?
Потому, что накладно. Зачем для каждой записи выполнять свой запрос, если можно соединив (JOIN) нужным образом таблицы сразу получить нужное. Это реляционная база, в конце концов, или Master-Detail наборы данных на клиенте? :)
Skier (2004-12-06 12:11:00) [8]>ЮЮ © (06.12.04 12:07) [8]
Почему ?
ЮЮ (2004-12-06 12:07:00) [9]Честно говоря, было бы хорошо, кабы и серверные БД не позволяли бы для каждой записи выполнять свой подзапрос :)
Skier (2004-12-06 12:03:00) [10]>ЮЮ © (06.12.04 11:06) [5]
т.е в LocalSQL это в принципенельзя сделать ?
ЮЮ (2004-12-06 11:07:00) [11]и в конце:
GROUP BY Parent.Id_num
ЮЮ (2004-12-06 11:06:00) [12]Потому, чот это не IB, такие подзапросы в LocalSQL не работают
SELECT
Parent.Id_num Number, Count(Child.Is) kidscount
FROM
ierarx Parent
LEFT JOIN ierarx Child ON Child.parent_id = Parent.Id_num
WHERE
Child.parent_id = 0
Skier (2004-12-06 10:56:00) [13]>GanibalLector © (05.12.04 17:37) [3]
select count(*), B.id_ierar from ierarx B, ierarx A where B.id_ierar = A.id_num
group by 2
capability not supported :(
GanibalLector (2004-12-05 17:37:00) [14]Вот,то что тебе нужно:
select count(*),B.id_sb_edid from sostav B,sb_edin A where B.id_sb_edid =A.id group by 2
только вставь свои таблицы и поля
Paradox (2004-12-05 17:12:00) [15]>GanibalLector © (05.12.04 16:34) [1]
Тот же результат
Ошибся я немного когда постил, вместо B.parent_id = A.id_num должно быть B.parent_id = A. id
Очень хотелось бы разобраться в чём причина...
GanibalLector (2004-12-05 16:34:00) [16]а если так :
... (select count( *) from ierarx B where B.parent_id...