【问题标题】:How do you combine multiple rows of data on same line如何在同一行上合并多行数据
【发布时间】:2011-12-08 19:22:48
【问题描述】:

基本上,我想为所有具有匹配 activityid 的行获取所有名称(RequiredAccount、RequiredContact、RequiredOwner)并将它们放在自己的列中。所以简而言之,我想获取多行数据并将它们放在一个列中。基本上我想做这个人正在做的事情(http://www.sqlprof.com/blogs/sqldev/archive/2008/03/31/how-to-list-multiple-rows-of-data-on-same -line.aspx) 但我似乎无法让它工作。

SELECT DISTINCT 
    Appointment.ActivityId, Appointment.ScheduledStart, Appointment.OwnerIdName, Contact.AccountIdName, Appointment.new_ContactPersonName, 
        Appointment.Subject, Appointment.new_ColderNotes, Account.AccountId, Contact_1.ContactId, SystemUser.SystemUserId, SystemUser.FullName AS OptionalOwner, 
        Contact_1.FullName AS OptionalContact, Account.Name AS OptionalAccount, ActivityParty.PartyId, ActivityParty.ParticipationTypeMask, 
        Contact_1.FullName AS RequiredContact, Account.Name AS RequiredAccount, SystemUser.FullName AS RequiredOwner, Account.new_BusinessUnit
FROM
    Contact AS Contact_1 RIGHT OUTER JOIN
        Account RIGHT OUTER JOIN
        SystemUser RIGHT OUTER JOIN
        Appointment INNER JOIN
        ActivityParty ON Appointment.ActivityId = ActivityParty.ActivityId ON SystemUser.SystemUserId = ActivityParty.PartyId ON Account.AccountId = ActivityParty.PartyId ON
        Contact_1.ContactId = ActivityParty.PartyId LEFT OUTER JOIN
        Contact ON Appointment.new_ContactPerson = Contact.ContactId

如果有 ActivityID 匹配,我想要三个必需列在一列中。所以前两行将在新列中有两个名称。

任何想法、帮助等

非常感谢!

【问题讨论】:

标签: sql sql-server sql-server-2008 tsql


【解决方案1】:

Simulating group_concat in sql server 2005

该线程中有几个工作示例,但它们都不是很漂亮:-/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 1970-01-01
    • 2016-02-04
    相关资源
    最近更新 更多