显示一对多的关系
我试图在Excel表格中显示来自SQL Server的数据,以便操作用户可以理解数据。 以下是数据在SQL Server中的外观:
PersonId Name Address Role Organization 1 John Smith 123 Main St Donor Library 1 John Smith 123 Main St Member Ballet 2 Jane Doe 333 Main St Member Orchestra
正如你所看到的,数据库包含了一个人与他们在一个组织中扮演的angular色之间的一对多关系。
在我的Excel中,我只想显示一个人的logging,并以某种方式显示这个人扮演多个angular色,这些angular色。
那里有很多组连接方法。 一些使用dynamicSQL和其他人使用XML。 这里有一个简单的例子,如果你有一个提前知道的短名单的angular色。 这样就可以很容易地控制列表的顺序。
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
我不确定组织如何适应您的问题,但在我看来,这是angular色的一部分。 你应该可以在case
逻辑中使用pr.Role + ' ' + pr.Organization
。