Из приведенного ниже результата я хотел бы объединить committees_attendees
на основе Work_WorkID
, используя двоеточие:
select distinct
w.Work_WorkID, k.Name as "Committees_Attendees"
from
DTree d, WMap m, WSubWork s, WWork w, WFAttrData a, KUAF k
where
d.DataID = m.Map_MapObjID
and m.Map_MapID = s.SubWork_MapID
and s.SubWork_WorkID = w.Work_WorkID
and w.Work_WorkID = a.WF_ID
and d.DataID = 35269818
and a.WF_AttrID = 5
and k.ID = a.WF_ValInt
Это результат вышеприведенного запроса:
Work_WorkID Committees_Attendees
--------------------------------
35273587 Deva
35273587 Eswar
И это ожидаемый результат:
Work_WorkID Committees_Attendees
-------------------------------------
35273587 Deva ; Eswar
Я пытался использовать путь XML, как показано ниже, но не смог получить желаемый вывод в два столбца.
SELECT DISTINCT
e.results AS "Secretariat_Attendees"
FROM
(SELECT
REPLACE(STUFF(CAST((SELECT ' ; ' + CAST(c.Secretariat_Attendees AS VARCHAR(MAX)), c.WorkID
FROM
(SELECT DISTINCT
w.Work_WorkID AS WorkID,
k.Name AS Secretariat_Attendees
FROM
DTree d, WMap m, WSubWork s, WWork w, WFAttrData a, KUAF k
WHERE
d.DataID = m.Map_MapObjID
AND m.Map_MapID = s.SubWork_MapID
AND s.SubWork_WorkID = w.Work_WorkID
AND w.Work_WorkID = a.WF_ID
AND d.DataID = 35269818
AND a.WF_AttrID = 17
AND k.ID = a.WF_ValInt) c
ORDER BY
c.WorkID
FOR XML PATH(''), TYPE) AS VARCHAR(MAX)), 1, 2, ''), ' ', '') AS results
FROM
wfattrdata t) e;
Результат:
Secretariat_Attendees
----------------------------------------------------------------------
AdminCEOOffice<WorkID>35273587</WorkID>;Diana<WorkID>35273587</WorkID>