Я использую SQL Server 2005 и знаком с базой, но у меня есть проблема, которая немного над головой, на что я был бы признателен за любую помощь.Рекурсивный SQL-запрос
У меня есть две таблицы, с которыми я пытаюсь работать. Одна из них - таблица базы данных сотрудников, а одна - таблица организации. В таблице сотрудников каждый сотрудник имеет идентификатор отдела, связанный с ними, и текущий статус занятости. В таблице организации есть список идентификаторов отделов, в отдел которых входит отдел, и текущий активный статус. Мне нужно создать запрос, который я могу предоставить идентификатору отдела, который вернет общее число активных (значение-A) сотрудников в этом отделе и все активные (значения-A) отделы ниже всего до конца.
Соответствующие таблицы и столбцы:
EE_Persons_today
DEPTID
EMPL_STATUS
DEPARTMENT_DATA
DEPTID
REPORTS_TO_DEPT
EFF_STATUS
Пример:
Отдел IT имеет 300 человек, которым он непосредственно назначен, но также имеет 2 подгруппы, Программное обеспечение и аппаратное обеспечение. Аппаратное обеспечение имеет 100 человек, непосредственно назначенных ему, и никаких подгрупп. Программное обеспечение имеет 100 человек, непосредственно назначенных ему, и 1 подгруппу под названием Enterprise с 50 людьми, непосредственно назначенными ей. Если я спрошу, сколько из них будет в ИТ, это будет 300 + 100 + 100 + 50 = 550. Если я попрошу, сколько в Программном обеспечении будет 100 + 50 = 150.
Это сработало отлично! Большое спасибо за ваш быстрый ответ. – Squared
Приятно слышать! –