У меня есть две таблицы. В одной таблице мои необработанные данные, а в другой таблице - отношения как показано ниже
Declare @Emp table(EmpId int,EmpName Varchar(100),CITY VARCHAR(100),Designation Varchar(100),ReportingManager Int)
INSERT INTO @Emp
VALUES(1,'Ram','Hyderabad','TL',6)
,(2,'Laxman','Hyderabad','TL',9)
,(3,'Suresh','Bangalore','Officer',6)
,(4,'Rajesh','Bangalore','Officer',9)
,(5,'Lokesh','Delhi','TL',6)
,(6,'Venkatesh','Mumbai','Manager',6)
,(7,'Subbu','Patna','Officer',9)
,(8,'Ravi','Hyderabad','Officer',9)
,(9,'Sai','Hyderabad','Manager',9)
,(10,'Satish','Hyderabad','Officer',6)
DECLARE @EmpRelation TABLE(EmpRelationShipID INT IDENTITY NOT NULL,ReportingTo INT,EmpID INT)
INSERT INTO @EmpRelation
VALUES(1,6)
,(2,9)
,(3,1)
,(4,5)
,(5,6)
,(7,2)
,(8,5)
,(10,1)
- Здесь столбец ReportingManager в таблице @Emp указывает, что если Emp сообщает TL, то TN's ManagerName
- Здесь столбец ReportingTo в @EmpRelation указывает, кому он сообщает. (TL или Менеджер)
- Офицеры отчитываются перед TL, а TL - перед менеджерами.
Мне нужны данные, как показано ниже
[EMPID],[EMPNAME],[CITY],[IsManager],[HasSubordinates],[IsSubordinate],[ManagerCity],[SubordinatesList]
Здесь поле [IsManager] означает, что если Сотрудник является Менеджером, то это «Да», иначе «Нет». В таблице @Emp «Sai» - «Менеджер», поэтому для него это «Да».
[HasSubordinates], если у сотрудника есть работающие под ним сотрудники, то «Да» или «Нет». В этом случае для TL и менеджеров этот столбец Да
[IsSubordinate] означает, что если сотрудник отчитывается перед кем-либо, тогда это да, в этом случае TL и сотрудники имеют Да
[ManagerCity] Предположим, что если сотрудник отчитывается перед TL, то его город менеджеров TL
[SubordinatesList] Сотрудники, работающие под TL / Manager. Для офицеров это пусто
Я не могу получить правильные данные. Может кто-нибудь, пожалуйста, посмотрите на это и предложите мне запрос для этого.