Создайте представление SQL, объединяющее несколько объектов M-M - PullRequest
0 голосов
/ 22 мая 2019

У меня есть модель данных, которая выглядит примерно так:

Документ имеет один ко многим атрибутам Документ имеет один ко многим свойствам

Я хотел бы создать представление, которое приводит к Документу, Атрибуты и свойства, но только одна строка на документ.Как правило, представление, подобное приведенному выше, дает одну строку для каждого документа-> Атрибут и Документ-> Свойство, выполненное с помощью LEFT OUTER JOIN.

Я хотел бы объединить все атрибуты в один «столбец» и свойства в один «столбец», например:

Документ 1, Атрибут Атрибут B Атрибут C, Свойство 1 Свойство 2

Есть ли какие-нибудь указатели о том, как собрать их вместе?

CREATE VIEW [dbo].[DocSearch]
                AS
                SELECT  N.Id, N.CreatedBy, N.CreatedOn, N.ModifiedBy, N.ModifiedOn, N.DocumentContext, N.DocumentSource, 
                        N.DocumentText, N.DocumentType, N.Confidentiality, N.ExpirationDate, S.PropertyName, 
                        R.AttributeName, N.RowVersion
                FROM    dbo.Document AS N LEFT OUTER JOIN
                        dbo.DocumentProperty AS NS ON N.Id = NS.DocumentId LEFT OUTER JOIN
                        dbo.Property AS S ON NS.PropertyId = S.Id LEFT OUTER JOIN
                        dbo.DocumentAttribute AS NR ON N.Id = NR.DocumentId LEFT OUTER JOIN
                        dbo.Attribute AS R ON NR.AttributeId = R.Id

Желание собрать атрибуты и свойства в один столбец для каждого документа.

...