У меня проблема с анализом информации из отчета XML.
Структура XML выглядит следующим образом:
<creditAccounts>
<creditAccount>
<accountDatabaseInfo>
<recordId> 123 </recordId>
</accountDatabaseInfo>
<client> </client>
<balance>
<accountBalance>
<BalanceId> 344354 </BalanceId>
<BalanceDate> 2018-10-16 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 344357 </BalanceId>
<BalanceDate> 2018-10-17 </BalanceDate>
</accountBalance>
</balance>
</creditAccount>
<creditAccount>
<accountDatabaseInfo>
<recordId> 222 </recordId>
</accountDatabaseInfo>
<client> </client>
<balance>
<accountBalance>
<BalanceId> 485323 </BalanceId>
<BalanceDate> 2018-10-05 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 546221 </BalanceId>
<BalanceDate> 2018-10-06 </BalanceDate>
</accountBalance>
<accountBalance>
<BalanceId> 439523 </BalanceId>
<BalanceDate> 2018-10-02 </BalanceDate>
</accountBalance>
</balance>
</creditAccount>
</creditAccounts>
Итак, в этой структуре у меня есть, например, первый кредитный счет с историей 2 balancId.и второй кредитный счет с 3 историями баланса.То, что я хотел бы получить, это таблица со всеми балансами и всеми записями из учетных записей, например:
Таблица
Я использую приведенный ниже код для извлечения этой информацииOPENXML:
FROM
OPENXML(@Handle,'creditAccounts/creditAccount/balance/accountBalance', 2)
WITH (
recordId NVARCHAR(100) '/creditAccounts/creditAccount/accountDatabaseInfo/recordId//',
BalanceId NVARCHAR(100) 'balanceId',
BalanceDate NVARCHAR(100) 'balanceDate',
)
Проблема в том, что начальный путь в OPENXML содержит все данные BalanceId и BalanceDate, но у меня проблема с подключением его к информации recordId, находящейся в другом узле ... Я использую новый источник fot recordIdно я получаю только первый, несмотря на два разных ... Кто-нибудь знает, как изменить этот путь, чтобы работать хорошо?Я пытался объединить 2 таблицы с разными путями openxml, но все же у меня нет того же ключа, чтобы присоединиться к нему ... Любые подсказки?