2016-11-07 5 views
0

私は2つのテーブル:Transactionfrom_personを持つデータベースを持っています。データベースを特定のフォーマットのXMLに変換する

私はこのような指定された形式に変換する必要があり

<transaction>      
    <transaction_number>TRNWEB0147</transaction_number 
    <transaction_location>felesteen</transaction_location> 
    <date_transaction>2016-05-25T00:00:00</date_transaction> 
    <from_funds_code>C</from_funds_code> 
<from_person>      
    <gender>M</gender> 
    <title>Mr.</title> 
    <first_name>Mohamed</first_name> 
    <middle_name>Mohamed</middle_name> 
    <prefix>AHMED</prefix> 
    <last_name>yahia</last_name> 
    <birth_date>1984-11-16T00:00:00</birth_date> 
    <ssn>28411160225124</ssn> 
</from_person> 
</transaction> 

私はこのクエリを実行しよう:

select tr.transactionnumber 
     ,tr.transaction_location 
     ,tr.transaction_description 
     ,tr.date_transaction 
     ,tr.teller 
     ,tr.authorized 
     ,tr.transmode_ 
     ,tr.amount_local 
     ,(select fp.from_funds_code 
       ,fp.from_country 
      from from_person fp 
     where fp.from_funds_code = tr.t_from_my_client 
      for xml path(''), elements, type) 
    from dbo. [ transaction ] tr 
    for xml path(''), elements, type 

が、この形式になって結果:

<transaction_number>TRNWEB0147</transaction_number 
    <transaction_location>felesteen</transaction_location> 
    <date_transaction>2016-05-25T00:00:00</date_transaction> 
    <from_funds_code>C</from_funds_code>    
    <gender>M</gender> 
    <title>Mr.</title> 
    <first_name>Mohamed</first_name> 
    <middle_name>Mohamed</middle_name> 
    <prefix>AHMED</prefix> 
    <last_name>yahia</last_name> 
    <birth_date>1984-11-16T00:00:00</birth_date> 
    <ssn>28411160225124</ssn> 

私は多くの方法を試みたが、成功しなかった、助けてください。

+1

サブクエリで 'for XML Path( 'from_person')'を設定しようとしましたか? –

+0

何を意味するのですか?詳細が必要ですか? –

+1

* "サブクエリまたはインナークエリまたはネストされたクエリは別のSQLクエリ内のクエリです" *(tutorialspoint.com - [SQL - サブクエリ](https://www.tutorialspoint.com/sql/sql-sub- queries.htm))。あなたには1つしかありません。そのサブクエリでは、 'FOR XML PATH( '')'を使用します。 'FOR XML PATH( 'from_person')'を試してください。 –

答えて

1

このクエリを使用してください。

SELECT transaction_number,transaction_location,date_transaction,from_funds_code, 
(
    SELECT gender,title,first_name,middle_name,prefix,last_name,birth_date,ssn 
    FROM from_person FP 
    WHERE FP.FROM_FUNDS_CODE =TR.T_FROM_MY_CLIENT 
    FOR XML PATH('from_person'), ELEMENTS, TYPE 
) 
FROM dbo.[TRANSACTION] TR 
FOR XML PATH('transaction'), ELEMENTS, TYPE 
+0

DONE EXCELLENT .... –

関連する問題