Опитвам се да извлека четири части от информация от база данни на 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, ще се радвам на всяка помощ.