Hallo und guten Morgen, ich baue grade eine xml, die Daten kommen aus mssql Server. Ich bekomme zwar Ergebnis, aber nicht so wie gewünscht. Meine fertige xml Datei soll so aussehen:
<v1:farbe id="11" type="l">
<v1:artikels>
<v1:artikel>A bis Z</v1:artikel>
</v1:artikels>
<zusaetze>
<zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="050" />
</zusaetze>
</v1:farbe>
aber es sieht so aus:
<v1:farbe id="11" type="l">
<v1:artikels>
<v1:artikel>A bis Z</v1:artikel>
</v1:artikels>
<zusaetze>
<zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="050" />
<zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="030" />
<zusatz xmlns:v1="test.de" xmlns:commons="v3.test" logicalName="gruppe" key="020" />
</zusaetze>
</v1:farbe>
Meine Abfrage ist so:
WITH XMLNAMESPACES (
'xmlns:v1="test.de"' as commons,
'xmlns:commons="v3.test" ' as v1)
Select tab.id as '@id',
'zusatz' as '@type',
titel1 as 'v1:zusaetze/v1:zusatz',
,(
Select
'DDC_Sachgruppen' as '@logicalName'
,gruppe as '@key'
from tab
order by tab.id
offset 0 rows
fetch next 3 row only
FOR XML PATH('zusatz'), TYPE
) as zusaetze
FROM [zdb_import2]
order by tab.id
offset 0 rows
fetch next 3
row only
FOR XML PATH('v1:farbe'), ROOT('v1:farben')
Ich möchte einfach nur erste 3 Datensätze holen aus der Datenbank. An sich holt mir die Abfrage 3 Datensätze, aber jedes mal mit 3 gleichen Zusätze, was falsch ist. Zu jede Datensatz ist ein Zusatz. Wie kann ich meine Abfrage korrigieren?
Vielen Dank im Voraus für jede Antwort!