簡體   English   中英

顯示一對多的關系

[英]Showing one-to-many relationship

我試圖在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

如您所見,數據庫包含一個人與他們在組織中扮演的角色之間的一對多關系。

在我的Excel中,我想只顯示一次人物記錄,並以某種方式顯示此人扮演多個角色,這些是角色。

那里有很多組連接方法。 有些使用動態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

我不確定組織是如何適應你的問題但在我看來它是角色的一部分。 您應該能夠在case邏輯中使用pr.Role + ' ' + pr.Organization

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM