XML Xquery: перечисление нескольких подэлементов внутри основного элемента вместо перечисления одного и того же основного элемента несколько раз с разными подэлементами - PullRequest
0 голосов
/ 01 апреля 2020

Я пришел из SQL фона, но мне нужно поработать над проектом для моей компании с использованием Xquery, и я подумал, что смогу сделать это.

Я работаю с базой данных XML для клиента, который хранит информацию о том, кто является премьер-министром проекта и кто является аналитиком проекта. Он имеет элементы проекта, в которых перечисляются проекты с идентификатором pid, и элементы сотрудника, в которых указывается, какие проекты они отправляют (перечислены в единственной строке, разделенной запятыми), и какими руководят (аналогично перечислены). Моя задача состоит в том, чтобы найти всех людей, которые одновременно управляют и ведут проект, и перечислить упомянутые проекты.

У меня такой вопрос: как вернуть каждое имя проекта под одним и тем же элементом employee, вместо того, чтобы возвращать 1 для каждого элемента и перечислять элемент employee несколько раз?

for $e in //employee,
    $p in //project
where $e/contains(@analysts, $m/@pid)
and $e/contains(@pms, $m/@pid)
return
  <double-roles>
    <emp-name>{$p/name/text()}</emp-name>
    <proj-name>{$p/name/text(), “{“, $p/date/text(), “}”}</proj-name>
  </double-roles>
...