Size: a a a

2020 September 22

DI

Dmitriy Ivanov in sql_ninja
я уже ей писал как, только надо подправить условие, что менеджер not null а =
источник

DI

Dmitriy Ivanov in sql_ninja
т.к. он будет в менеждерах иметь свой id  или все таки id вышестоящего?
источник

T

Timus in sql_ninja
Arina
Да
ок. у нас есть менеджер, 7839 у которого в подчинении менеджеры других отделов, что мы с ним делаем? отбрасываем из условия?
источник

2_

2flower _ in sql_ninja
Dmitriy Ivanov
Переслано от Dmitriy Ivanov
чтобы взять всех менеджеров в отделе вам нужно что?
Сгрупировать по отделам исключая менеджеров и вывести max зп
т.е.
select max(salary) dep_max_salary,department from employee where manager_id is null group by department
получить зп менеджера по отделу, можно сделать также только условие manager_id is not null
далее соединить эти 2 селекта и запихнуть их в подзапрос
основным запросом сделать джойн к подзапросу и получить список регионов и отделов
так подчиненного менеджера тоже надо учитывать, как сотрудника
источник

DI

Dmitriy Ivanov in sql_ninja
2flower _
так подчиненного менеджера тоже надо учитывать, как сотрудника
да вот хз, у Арины надо, у Тимуса в примере не надо. Где правда не понятно
источник

2_

2flower _ in sql_ninja
мне кажется мой пример чуть подправить и без рекурсии можно обойтись.
источник

T

Timus in sql_ninja
мне кажется, что Арине надо точнее узнать у препода что делать с менеджерами)  при условии такой вложенности.
источник

T

Timus in sql_ninja
"Вассал моего вассала - не мой вассал"
источник

A

Arina in sql_ninja
Timus
ок. у нас есть менеджер, 7839 у которого в подчинении менеджеры других отделов, что мы с ним делаем? отбрасываем из условия?
у меня в таблице только один менеджер,у которого нет начальника,у остальных у всех есть
источник

2_

2flower _ in sql_ninja
в принципе задача про дерево где уровень выше всегда должен быть на 1500 больше и все, для этого рекурсия не нужна
источник

DI

Dmitriy Ivanov in sql_ninja
Лучше дождаться уточнений ИМХО
источник

2_

2flower _ in sql_ninja
Dmitriy Ivanov
да вот хз, у Арины надо, у Тимуса в примере не надо. Где правда не понятно
вы меня обманули в примере manager без not null :). а я поверил
CREATE TABLE EMPLOYEE (
 employee_id SMALLINT NOT NULL PRIMARY KEY,
 last_name VARCHAR(15),
 first_name VARCHAR(15),
 middle_initial VARCHAR(1),
manager_id SMALLINT,
 job_id SMALLINT,
 hire_date DATETIME,
 salary NUMERIC(7,2),
 commission NUMERIC(7,2),
 department_id SMALLINT  );
источник

DI

Dmitriy Ivanov in sql_ninja
2flower _
вы меня обманули в примере manager без not null :). а я поверил
CREATE TABLE EMPLOYEE (
 employee_id SMALLINT NOT NULL PRIMARY KEY,
 last_name VARCHAR(15),
 first_name VARCHAR(15),
 middle_initial VARCHAR(1),
manager_id SMALLINT,
 job_id SMALLINT,
 hire_date DATETIME,
 salary NUMERIC(7,2),
 commission NUMERIC(7,2),
 department_id SMALLINT  );
Извиняйте я сам уже не понимаю какую задачу решаем :)
источник

T

Timus in sql_ninja
Arina
у меня в таблице только один менеджер,у которого нет начальника,у остальных у всех есть
ок. у manager_id = 7566 в подчинении еще 2 человека, и у тех по одному человеку в подчинении. для manager_id = 7566 как надо считать? для 2-х подчиненных или для подчиненных подчиненных?
источник

T

Timus in sql_ninja
2flower _
вы меня обманули в примере manager без not null :). а я поверил
CREATE TABLE EMPLOYEE (
 employee_id SMALLINT NOT NULL PRIMARY KEY,
 last_name VARCHAR(15),
 first_name VARCHAR(15),
 middle_initial VARCHAR(1),
manager_id SMALLINT,
 job_id SMALLINT,
 hire_date DATETIME,
 salary NUMERIC(7,2),
 commission NUMERIC(7,2),
 department_id SMALLINT  );
а проверить? верить на слово людям...
источник

2_

2flower _ in sql_ninja
Timus
ок. у manager_id = 7566 в подчинении еще 2 человека, и у тех по одному человеку в подчинении. для manager_id = 7566 как надо считать? для 2-х подчиненных или для подчиненных подчиненных?
так если у манагеров подчиненных все ок с боссом и с подчиненными и так все хорошо
нужно просто проверить что у всех манагеров его подчиненные проходят условие, без рекурсии этого будет достаточно.
источник

2_

2flower _ in sql_ninja
Timus
а проверить? верить на слово людям...
админам можно
источник

T

Timus in sql_ninja
2flower _
так если у манагеров подчиненных все ок с боссом и с подчиненными и так все хорошо
нужно просто проверить что у всех манагеров его подчиненные проходят условие, без рекурсии этого будет достаточно.
я там выше писал про вассала.  "менеджера и абсолютно всех его подчинённых" подчиненных какого уровня подчинения? если без разницы - то задача не сложная
источник

DI

Dmitriy Ivanov in sql_ninja
2flower _
вы меня обманули в примере manager без not null :). а я поверил
CREATE TABLE EMPLOYEE (
 employee_id SMALLINT NOT NULL PRIMARY KEY,
 last_name VARCHAR(15),
 first_name VARCHAR(15),
 middle_initial VARCHAR(1),
manager_id SMALLINT,
 job_id SMALLINT,
 hire_date DATETIME,
 salary NUMERIC(7,2),
 commission NUMERIC(7,2),
 department_id SMALLINT  );
У каждого сотрудника есть ид в поле менеджер это исходя из erd
источник

2_

2flower _ in sql_ninja
Timus
я там выше писал про вассала.  "менеджера и абсолютно всех его подчинённых" подчиненных какого уровня подчинения? если без разницы - то задача не сложная
именно что без разницы, т.к. у манагера-слейва зп больше чем у подчиненных, то манагера-мастера она должна быть не меньше чем у слейвов+1500,
в итоге имеем упорядоченное дерево где 1 уровень самые большие значения, все что ниже меньше.
источник