Advertisement
Advertisement

新足迹

 找回密码
 注册
新足迹 门户 IT专业论坛 查看内容

一个Sql有趣的小问题,上班闲的可以进来看看:)

2011-3-3 09:55| 发布者: 梦呓人 | 查看: 1446| 原文链接

这个世界上除了把正妹之外,最有趣的事情还包括写一些sql query :-)


现在有这么一个table,里面的原始数据如图1,关系也很简单:




1,Ken是top level的manager;

2,Brian reports给Ken;

3,David,Stephen,Syed report给Brian;

4,以此类推....


现在需要一个query把所有employee按照他们的级别层次地列出,效果如图2.



有兴趣的可以想想有什么简单一些的办法:)  (大牛们请轻拍




P.S.附上创建table和data的query:

CREATE TABLE dbo.MyEmployees
(
        EmployeeID smallint NOT NULL,
        FirstName nvarchar(30)  NOT NULL,
        LastName  nvarchar(40) NOT NULL,
        Title nvarchar(50) NOT NULL,
        DeptID smallint NOT NULL,
        ManagerID int NULL,
CONSTRAINT PK_EmployeeID PRIMARY KEY CLUSTERED (EmployeeID ASC)
);



INSERT INTO dbo.MyEmployees VALUES
(1, N'Ken', N'Sánchez', N'Chief Executive Officer',16,NULL)
,(273, N'Brian', N'Welcker', N'Vice President of Sales',3,1)
,(274, N'Stephen', N'Jiang', N'North American Sales Manager',3,273)
,(275, N'Michael', N'Blythe', N'Sales Representative',3,274)
,(276, N'Linda', N'Mitchell', N'Sales Representative',3,274)
,(285, N'Syed', N'Abbas', N'Pacific Sales Manager',3,273)
,(286, N'Lynn', N'Tsoflias', N'Sales Representative',3,285)
,(16,  N'David',N'Bradley', N'Marketing Manager', 4, 273)
,(23,  N'Mary', N'Gibson', N'Marketing Specialist', 4, 16);

[ 本帖最后由 BJ-KING 于 2011-3-3 10:57 编辑 ]
Advertisement
Advertisement


Advertisement
Advertisement
返回顶部