![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 28.12.2009
Сообщений: 42
|
![]()
Есть таблица subdivision, в которой хранятся данные о иерархии подразделений:
subid | sub_name | parentid subid - идентификатор подразделения, первичный ключ parentid - id родительского подразделения Нужен запрос, в котором будет 3 столбца - id подразделения, название подразделения, количество дочерних подразделений у подразделения. Код:
|
![]() |
![]() |
![]() |
#2 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
![]()
попробуй так:
Код:
Код:
так как условия у тебя идентичны (или я чего то не понял) а вот если тебе нужно вывести все записи с подсчетом дочерних, то бери первый запрос только убери последнее условие (WHERE s.parent_id = : p1)
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... ![]() Последний раз редактировалось Yurk@; 02.09.2010 в 19:55. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 28.12.2009
Сообщений: 42
|
![]()
Да, нужно было вывести все записи с подсчетом дочерних, первый вариант запроса подошел
![]() Спасибо огромное! И еще вот какой вопрос возник. Имея идентификатор подразделения, нужно получить идентификаторы всех его потомков (именно потомков, а не детей). Учитывая то, что уровень иерархии заведомо неизвестен, то видимо нужна рекурсия... Осуществимо ли это вообще средствами SQL? Последний раз редактировалось Stilet; 03.09.2010 в 09:38. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 19.12.2007
Сообщений: 1,100
|
![]()
в таких случаях я обходился вводом доп. поля с признаком типа потомка.
т.е. в моем случае родитель был "год операции" с признаком "0" соответственно: месяц - "1" день - "2" часы - "3" и уже на основании этих признаков я строил свое дерево
На форуме: Помогаю за спасибо
ICQ\Skype: Это моё личное время ... ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Запрос с CASE переделать в запрос с PIVOT (MS SQL Server 2005) | Машуля | SQL, базы данных | 4 | 06.05.2010 21:09 |
SQL запрос | Yur@ | SQL, базы данных | 1 | 28.01.2010 19:48 |
Создание новых таблиц в MS SQL SERVERE через SQL запрос в Delphi | S_Yevgeniy | Помощь студентам | 1 | 27.10.2009 06:26 |
SQL запрос на основе другого SQL запрса... | Timoxa | БД в Delphi | 1 | 07.01.2007 18:15 |