我试图在Excel工作表中显示SQL Server中的数据,以便操作用户可以理解数据。以下是SQL Server中数据的外观:
{{1}}
正如您所看到的,数据库包含一个人与他们在组织中扮演的角色之间的一对多关系。
在我的Excel中,我想只显示一次人物记录,并以某种方式显示此人扮演多个角色,这些角色就是这些角色。
答案 0 :(得分:3)
那里有很多组连接方法。有些使用动态sql,有些则使用xml。如果您预先知道一个简短的角色列表,这是一个简单的。通过这种方式,您可以非常轻松地控制列表的顺序。
select *,
(
select
substring(
coalesce(min(case when r.Role = 'Donor' then ', Donor' end), '') +
coalesce(min(case when r.Role = 'Member' then ', Member' end), '') +
...
coalesce(min(case when r.Role = 'XXXXXX' then ', XXXXXX' end), '')
, 3, 300)
from PersonRoles pr
where pr.PersonId = p.PersonId
) as Roles
from Person p
我不确定组织如何适应您的问题,但在我看来,这是该角色的一部分。您应该能够在pr.Role + ' ' + pr.Organization
逻辑中使用case
。