Я пытаюсь извлечь четыре части информации из базы данных MS-SQL Server 2008, которая хранится в одном поле XML. Это первый раз, когда мне приходилось работать с XML, поэтому у меня возникли некоторые проблемы, и поэтому у меня есть только те данные, которые я пытаюсь извлечь. Я пытался использовать другие публикации для решения своей проблемы, но, очевидно, безуспешно.
Четыре части информации — это сначала «Менеджер проекта», затем «Ценность», а затем 2-я — «Центр прибыли», а затем это значение. Значение из «Центра прибыли» будет использоваться для соединения двух таблиц. Ниже приведен пример данных XML, которые хранятся в этом поле.
<ArrayOfEntityPropertyOfString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<EntityPropertyOfString>
<Name>Project Manager</Name>
<Value>DBD</Value>
</EntityPropertyOfString>
<EntityPropertyOfString>
<Name>Profit Center</Name>
<Value>211</Value>
</EntityPropertyOfString>
</ArrayOfEntityPropertyOfString>
Итак, в этом примере мне нужно использовать значение «211» «Центр прибыли», чтобы объединить две таблицы в запросе MS-SQL. Таблицу, в которой содержится эта информация, можно назвать "tblProfitCenter", а поле, содержащее ее, - "prftData".
Вот составленный запрос, который выполнял бы ту же работу, если бы данные в «prftData» были не в формате XML, а вместо этого были бы обычным целочисленным полем, содержащим идентификатор центра прибыли и выполняющим соединение.
SELECT md.LName, md.FName, pc.ProfitCenterName
FROM tblMainDataCenter md
LEFT OUTER JOIN tblProfitCenter pc ON md.pcID = pc.prftData
Это для проекта, в котором я работаю, и мне нужно иметь возможность выйти за рамки этого. Обычно я изучаю XML, чтобы решить эту проблему, но время не позволяет этого. Пока у меня не будет возможности изучить XML, я буду признателен за любую помощь.