Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.01.02;
Скачать: CL | DM;

Вниз

кол-во подчиненных записей...   Найти похожие ветки 

 
Paradox   (2004-12-05 14:33) [0]

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 такое вообще нельзя писать ?


 
GanibalLector ©   (2004-12-05 16:34) [1]

а если так :
... (select count(*) from ierarx B where B.parent_id...


 
Paradox   (2004-12-05 17:12) [2]

>GanibalLector ©   (05.12.04 16:34) [1]
Тот же результат

Ошибся я немного когда постил, вместо B.parent_id = A.id_num должно быть B.parent_id = A.id

Очень хотелось бы разобраться в чём причина...


 
GanibalLector ©   (2004-12-05 17:37) [3]

Вот,то что тебе нужно:
select count(*),B.id_sb_edid from sostav B,sb_edin A where B.id_sb_edid =A.id  group by 2

только вставь свои таблицы и поля


 
Skier ©   (2004-12-06 10:56) [4]

>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 :(


 
ЮЮ ©   (2004-12-06 11:06) [5]

Потому, чот это не 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


 
ЮЮ ©   (2004-12-06 11:07) [6]

и в конце:

GROUP BY Parent.Id_num


 
Skier ©   (2004-12-06 12:03) [7]

>ЮЮ ©   (06.12.04 11:06) [5]
т.е в LocalSQL это в принципе нельзя сделать ?


 
ЮЮ ©   (2004-12-06 12:07) [8]

Честно говоря, было бы хорошо, кабы и серверные БД не позволяли бы для каждой записи выполнять свой подзапрос :)


 
Skier ©   (2004-12-06 12:11) [9]

>ЮЮ ©   (06.12.04 12:07) [8]
Почему ?


 
ЮЮ ©   (2004-12-06 12:21) [10]

>Почему?
Потому, что накладно. Зачем для каждой записи выполнять свой запрос, если можно соединив (JOIN) нужным образом таблицы сразу получить нужное. Это реляционная база, в конце концов, или Master-Detail наборы данных на клиенте? :)


 
Skier ©   (2004-12-06 12:47) [11]

>ЮЮ ©   (06.12.04 12:21) [10]
Понятно...а из моей ситуации выход есть какой-нибудь ?


 
ЮЮ ©   (2004-12-06 13:02) [12]

А что, [5]+[6] тоже не работает?


 
Skier ©   (2004-12-06 13:08) [13]

>ЮЮ ©   (06.12.04 13:02) [12]
нет.
могу выслать табличку (если время есть...), там 30 кб всего...


 
ЮЮ ©   (2004-12-06 13:10) [14]

>(если время есть...)
У меня уже 20 местного, валю домой. Но выслать можешь - утром гляну :)


 
ЮЮ ©   (2004-12-06 13:13) [15]

> ЮЮ ©   (06.12.04 13:10) [14]
kolesov <скотина, сволочь и т.д.> msun точка ру


 
ЮЮ ©   (2004-12-07 04:21) [16]

После исправления ряда ошибок и указания имен тех полей, которые реально существуют в таблмце получим:

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



Страницы: 1 вся ветка

Текущий архив: 2005.01.02;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.05 c
3-1101985880
intaari
2004-12-02 14:11
2005.01.02
Какие существуют способы восстановления БД


1-1103187857
Yurij-7
2004-12-16 12:04
2005.01.02
Гарячая клавиша


1-1103498206
Артем Владимирович
2004-12-20 02:16
2005.01.02
Отображение Richedit в WebBrowser


6-1097953926
Socket
2004-10-16 23:12
2005.01.02
TTcpClient


3-1102089690
MaxDDinc
2004-12-03 19:01
2005.01.02
Фиксирование изменений в БД MS SQL Server 2000