Как объединить 2 или более строк в одну и объединить один столбец с запятой разделителя - PullRequest
0 голосов
/ 16 апреля 2019

введите описание изображения здесь. Я хочу создать представление, в котором есть несколько столбцов, и все строки имеют одинаковый результат, кроме одного столбца, как объединить или объединить все строки в одной строке, но один столбец с другим значением, которое я хотел показать их в одном столбце и разделить значения запятой. если есть способ показать мне по запросу.

CREATE VIEW [ret_vwSalaried]
 AS
SELECT 
   salaried.FirstName,
   salaried.LastName,
   salaried.IdNumber,
   salaried.PersonnelNumber,
   operation.OperationalUnit
FROM 
   ret_Salaried salaried INNER JOIN
   ret_OperationalUnitFeaturs operation ON salaried`enter code here`.Guid = operation.SalariedGuid
WHERE Deleted = 0

результат включает в себя 3 строки, я хотел объединить их в одну строку, потому что они одинаковы, но столбец [OperationalUnit] имеет другой результат (у каждого человека может быть свой операционный блок), и я хочу также объединить их в грести и разделять их запятыми.

1 Ответ

1 голос
/ 17 апреля 2019
        CREATE VIEW  [dbo].[ret_vwSalariedForReport]
AS
     WITH temp1 AS (SELECT
     salaried.*,
     operationalUnits.Title as OperationalUnitTitle
FROM
    ret_vwSalaried salaried LEFT JOIN
    prs_operationalUnitFeatures operationalUnitFeatures on salaried.[Guid] = operationalUnitFeatures.[FeatureGuid] LEFT JOIN 
    prs_operationalUnits operationalUnits ON operationalUnits.id = operationalUnitFeatures.OperationalUnitID 
    ), 
temp2 AS (SELECT
    t2.*,
    STUFF ((SELECT ' - ' + t1.OperationalUnitTitle
        FROM
            temp1 t1 
        WHERE t1.[ID] = t2.[ID]  
        For XML PATH('')), 2, 2, '') OperationalUnitTitles from temp1 t2) 
SELECT 
    [Guid],
    ID,
    Title,
    PersonnelNo,
    FirstName,
    LastName,
    FullName,
    Active,
    SSN,
    DeathDate,
    SalariedType,
    OperationalUnitTitles
FROM 
    temp2
GROUP BY 
    [Guid],
    ID,
    Title,
    PersonnelNo,
    FirstName,
    LastName,
    FullName,
    Active,
    SSN,
    DeathDate,
    SalariedType,
    OperationalUnitTitles
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...