2017-05-19 7 views
0

XMLを正しい方法で出力するのには苦労しています。 USED​​異なるクエリでXMLを出力するにはどうすればいいですか

CODE:私は次のようになりますSQL Serverのクエリを使用してXML文書を生成しようとしている

SELECT Plate, tbl_veiculos.ID, Brand, Model, Origin, Color 
FROM tbl_veiculos, tbl_veiculo_spec 
WHERE tbl_veiculos.ID = tbl_veiculo_spec.ID AND tbl_veiculos.ID = 1 
FOR XML PATH ('Vehicle'), TYPE, ROOT('VehicleList') 

結果:

<VehicleList> 
     <Vehicle> 
     <Plate>34-23-nd</Plate> 
     <ID>1</ID> 
     <Brand>Mercedes-Benz</Brand> 
     <Model>A140</Model> 
     <Origin>Germany</Origin> 
     <Color>Red</Color> 
     </Vehicle> 
    </VehicleList> 

特定の方法には何かI必要。問題は、他のクエリ出力とマージしようとするときに発生します。私はこれがうまく説明されていないことを知っているので、私はあなたに私が欲しいもののharcodedバージョンを表示します。

  <VehicleList> 
       <Vehicle> 
       <Plate>34-23-nd</Plate> 
       <ID>1</ID> 
       <Brand>Mercedes-Benz</Brand> 
       <Model>A140</Model> 
       <SellerInfo> 
        <Name>Someone Special</Name> 
        <Street>Oxfod Court 1231</Street> 
       </SellerInfo> 
       <Origin>Germany</Origin> 
       <Color>Red</Color> 
       </Vehicle> 
      </VehicleList> 

<SellerInfo>は他のテーブルのものです。

+0

あなたは 'XML'に情報を取得するクエリで' 'テーブルに参加することができませんか? –

+0

テーブルにはどのデータ要素がありますか?他のテーブルと結合することはできますか?また、明示的な結合を使用することをお勧めします。 – Degan

+0

@Degan - はい、そうではありません。私の問題は、私は結果を得るためにクエリを構築する方法を理解していないということです。 SellerInfoは "PATH(" SellerInfo ")"のように表示され、次に他のテーブルからの結合になる '子'を持つ必要があります。 –

答えて

3

あなたは以下のようにサブクエリを使用することができます。

SELECT Plate, tbl_veiculos.ID, Brand, Model, 
(select Name, Street from sellerInfo where id = t1.id --use id to join sellerInfo table 
    for xml Path(''), type) as SellerInfo, 
Origin, Color, 
FROM tbl_veiculos t1 inner join tbl_veiculo_spec ts 
on tbl_veiculos.ID = tbl_veiculo_spec.ID AND tbl_veiculos.ID = 1 
FOR XML PATH ('Vehicle'), TYPE, ROOT('VehicleList') 
+0

ありがとうございます。私はあなたのコードを実際に使っていませんでしたが、問題をどのようにスローするかを見ました。 –

関連する問題