簡體   English   中英

如何旋轉我的表格並用逗號分隔“聚合”字段?

[英]How can I Pivot my Table and separate 'aggregated' fields with a Comma?

我想對我的數據進行透視。

我的初始查詢如下:

SELECT 
      pre_memberidyominame  As FullName
      ,LocalizedLabel       AS 'Role'
      ,COALESCE(pre_salesorderid,pre_opportunityid)  AS ActivityGuid

  FROM [dbo].[pre_salesteammember]    STM
  LEFT JOIN OptionSetMetadata OS
    ON STM.pre_rolecode = OS.[Option]
    AND EntityName = 'pre_salesteammember'  

結果 :

FullName |    Role         |   ActivityGuid
Peter     Account Manager    1
Laura     Account Manager    1
Frank     Lead BDM           2
Tom       IT Manager         2
Sander    PR Specialist      3

我希望實際結果如下所示:

Account Manager  |  Lead BDM   | ActivityGuid
Peter, Laura          NULL          1
NULL                  FRANK         2
NULL                  NULL          3   --> or could just be gone --> Last column should have Unique Values

我嘗試使用 PIVOT,但我似乎無法到達那里! 有什么幫助嗎?

您可以進行條件聚合:

select
    max(case when localizedlabel = 'Account Manager' then pre_memberidyominame end) account_manager,
    max(case when localizedlabel = 'Lead BDM' then pre_memberidyominame end) lead_bdm,
    coalesce(pre_salesorderid,pre_opportunityid)  as activityguid
from [dbo].[pre_salesteammember] stm
left join optionsetmetadata os
    on stm.pre_rolecode = os.[option]
    and entityname = 'pre_salesteammember'  
group by coalesce(pre_salesorderid,pre_opportunityid)

如果要聚合每個活動的名稱,可以使用string_agg()而不是max() (從 SQL Server 2017 開始可用):

select
    string_agg(case when localizedlabel = 'Account Manager' then pre_memberidyominame end, ', ') account_manager,
    string_agg(case when localizedlabel = 'Lead BDM' then pre_memberidyominame end, ', ') lead_bdm,
    coalesce(pre_salesorderid,pre_opportunityid)  as activityguid
from [dbo].[pre_salesteammember] stm
left join optionsetmetadata os
    on stm.pre_rolecode = os.[option]
    and entityname = 'pre_salesteammember'  
group by coalesce(pre_salesorderid,pre_opportunityid)

暫無
暫無

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

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