次のような構造を持つ MS SQL Server データベースにテーブルがあります。
| goodId | pos | description | docType | isKey |
+--------+---------+-------------+----------------+-------+
| 1417 | NULL | List 1050 | 1050.0000.0000 | 0 |
| 1417 | 2.1.1.1 | hgfhgf9 | 1050.0002.0000 | 1 |
| 1417 | 2.1.1.2 | hghgfh0 | 1050.0002.0000 | 1 |
| 1417 | 2.1.1.3 | wwwwww | 1050.0002.0000 | 1 |
| 1417 | NULL | List 1030 | 1030.0000.0000 | 0 |
| 1417 | 1.3.7.6 | tdgfdgfd | 1030.0001.0001 | 1 |
| 1417 | 9.2.1.2 | gdfgfdfd | 1030.0001.0009 | 1 |
| 1417 | 9.2.1 | dddddddd | 1030.0002.0009 | 1 |
最後の列 [docType] の最初の 4 文字はリストの番号を意味し、次の 4 文字は部品の番号を意味します。isKey = 1 の位置を取る必要がありますが、リストの説明は最初の 4 文字だけが入力されている行から取得する必要があります (そのリストの説明になります)。
次のような SQL XML を使用して、このテーブルから XML 構造を取得したいと考えています。
<good Id="1417">
<list num="1050" description="List 1050">
<part num="2">
<pos num = "2.1.1.1"/>
<pos num= "2.1.1.2"/>
<pos num= "2.1.1.3"/>
</part>
</list>
<list num="1030" description="List 1030">
<part num="1">
<pos num = "1.3.7.6"/>
<pos num = "9.2.1.2"/>
</part>
<part num="2">
<pos num = "9.2.1"/>
</part>
</list>
</good>
この XML 構造を取得するには、どのクエリを作成すればよいですか?