특정 순서로 표시하려는 간단한 직원 테이블이 있습니다. 나는 같은 결과를 얻기위한 대안적인 해결책 (또는 더 나은 해결책)이 있는지 알아보고 싶다. T-SQL 스크립트는 다음과 같습니다.T-SQL에 테이블을 표시하는 대체 솔루션
CREATE TABLE Employee(
EmployeeID INT IDENTITY(1,1) NOT NULL,
EmployeeName VARCHAR(255) NULL,
ManagerID INT NULL,
EmployeeType VARCHAR(20) NULL
)
GO
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Brad',5,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('James',3,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Ray',null,'Manager');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Tom',8,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Neil',8,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Rob',5,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Paul',5,'Memeber');
INSERT INTO Employee (EmployeeName, ManagerID, EmployeeType)
VALUES ('Tim',null,'Manager');
GO
SELECT e.EmployeeType, e.EmployeeName AS [Team Member],
(SELECT e2.EmployeeName FROM Employee AS e2 WHERE e2.EmployeeID = e.ManagerID) AS Manager
FROM Employee AS e
ORDER BY e.EmployeeType, e.EmployeeID
행은 먼저 관리자에 의해 정렬 된 다음 employeeID로 정렬됩니다. 내 문제는 내 솔루션에서 EmployeeType 열에 의해 정렬된다는 것입니다. 대신 ManagerId 열을 기준으로 정렬하는 것이 더 좋을까요? EmployeeType이 미래에 변경 될 수 있으므로 Manager에서 팀 관리자에게 다른 결과가 발생할 수 있습니다.
일치해야하는 비즈니스 규칙은 무엇입니까? managerID와 employeetype이 다를 것입니다 (그렇지 않으면 하나만 스키마에 있어야 함). 그러면 정렬이 달라집니다. – Mark