Разбор информации из отчета XML в базу данных SQL - PullRequest
0 голосов
/ 17 октября 2018

У меня проблема с анализом информации из отчета 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, но все же у меня нет того же ключа, чтобы присоединиться к нему ... Любые подсказки?

...