Помогите написать запрос - из сил выбился...

Dark Magus
Дата: 06.08.2004 13:07:23
Мастера SQL, подскажите.

Вопрос такой. Есть таблица со столбцами ID, Name, Comment, Parent_ID. Столбец Parent_ID содержит значение из столбца ID, т.е. как бы FK. В запросе необходимо получить данные по ID, Name, Comment и количеству детей, т.е. тех строк, у который Parent_ID равен текущему ID. Запрос нетривиальный, мне кажется...

Вот, что пока получается:

SELECT Value_ID, Name, Comment,
(
SELECT COUNT (Value_ID)
FROM IS00.Value
WHERE Parent_ID IN
(
???
)
) AS ChildrenCount
FROM IS00.ValueWHERE Classifier_ID = 1 AND Value_ID IN (SELECT ObjectIdentifier FROM IS00.AccessObject WHERE AccessObjectType_ID = 3 AND AccessObject_ID IN (SELECT AccessObject_ID FROM IS00.AccessRight WHERE Action_ID = 3 AND DBUser_ID = 1))

Вложенные запросы после WHERE - обеспечение прав доступа.

Коллизия возникает с именам переменных. Возможно добавляемый столбец ChildrenCount необходимо получать как-то иначе. Подскажите!
vadimm
Дата: 06.08.2004 18:04:57
SELECT ks.Value_ID,Name,kk.ChildrenCount
FROM IS00.Value as ks
LEFT OUTER JOIN (SELECT ks.Parent_ID ,COUNT(ks.Value_ID) AS ChildrenCount
FROM IS00.Value AS ks
GROUP BY ks.Parent_ID) AS kk
ON kk.Parent_ID = ks.Value_ID
WHERE ....
Dark Magus
Дата: 09.08.2004 13:22:36
Спасибо...

Тебе +1 к Attack и Defence skills.