gpt4 book ai didi

sql-server-2008 - 用于显示分层数据的 SQL Server 查询或工具

转载 作者:行者123 更新时间:2023-12-04 07:07:58 26 4
gpt4 key购买 nike

我们有一个通用的组织表结构,把它想象成一个树或金字塔层次结构。我们基本上有多个要展示的“树”。对一家公司,对另一家 ETC。

有谁知道显示这些数据的好方法? SQL 查询会很好,怀疑它是否可行,但我不反对使用某些 OTS 工具(最好是免费的)。我也想避免某种类型的报告。我不需要实际的解决方案,只需要知道它是否可能。所以如果你说 SQL,如果你能给我一个 2 表的例子来展示一个 root 的离开,我会很高兴。

结构很一般

alt text

并且每个表都通过代理键 CompanyID、CompanyGroupID 等链接。

关于我们可以显示/查询这些数据的方式有什么建议吗?最后的方法是编写一个快速的 C# Windows 应用程序......

我们希望以树的形式查看它:

--                      1-Company
-- / \
-- CompanyGroupA CompanyGroupB
-- / \ \
-- CompanyStoreA1 CompanyStoreA1 CompanyStoreB
-- / \ / \
--Employee A B C

为了取悦大众,这里有一个示例测试脚本来填充查询。
DECLARE @Company table (id int, name varchar(40) )
INSERT @Company VALUES (1,'Living Things' )
INSERT @Company VALUES (2,'Boring Company' )


DECLARE @CompanyGroup table (id int, name varchar(40), CompanyID int)
INSERT @CompanyGroup VALUES (1,'Pets',1 )
INSERT @CompanyGroup VALUES (2,'Humans',1 )
INSERT @CompanyGroup VALUES (3,'Electronics',2 )
INSERT @CompanyGroup VALUES (4,'Food',2 )


DECLARE @CompanyStore table (id int, name varchar(40), CompanyGroupID int)
INSERT @CompanyStore VALUES (1,'PetsStoreA',1 )
INSERT @CompanyStore VALUES (2,'PetsStoreB',1 )
INSERT @CompanyStore VALUES (3,'PetsStoreC',1 )
INSERT @CompanyStore VALUES (4,'PetsStoreD', 1)
INSERT @CompanyStore VALUES (5,'HumansStore',2 )
INSERT @CompanyStore VALUES (6,'FoodStore',3 )

最终的解决方案非常棒,我修改了 usp_DrawTree 以接受 varchar 与 ints,因为我必须使我的查询 ID 唯一。然后我只是做了一个选择/联合并建立了父子关系。
select * into #TreeData from (
select ID='C' + cast(id as varchar(10)),
ParentID=null,
DataForBox=name + '(' + cast(id as varchar(10)) + ')',
ExtraInfo='',
SortColumn=name
from Company c
)
union all (
select ID='CG' + cast(id as varchar(10)),
ParentID=cg.CompanyID ,
DataForBox=name + '(' + cast(id as varchar(10)) + ')',
ExtraInfo='',
SortColumn=name
from CompanyGroup cg join Company c on c.ID=cg.CompanyID
)
//union all rest of hierarchy
)

最佳答案

Brad Schulz 以 usp_DrawTree 的形式进行救援.

alt text

关于sql-server-2008 - 用于显示分层数据的 SQL Server 查询或工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3371619/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com