Как объединить несколько строк данных в одной строке - PullRequest
0 голосов
/ 08 декабря 2011

В основном я хочу взять все имена (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 Matches. Таким образом, первые две строки будут иметь два имени в новом столбце.

Любые идеи, помощь и т. Д.

Большое спасибо!

1 Ответ

0 голосов
/ 08 декабря 2011

Имитация group_concat в SQL Server 2005

В этой теме есть несколько рабочих примеров, но ни один из них не очень красив: - /

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...