verwendetes Datenbanksystem: <MSSQL>
Hallo,
ich habe eine Abfrage von 2 Tabellen, allerdings bekomme ich Fehler´, die ich nicht beheben kann: > Fehlermeldung:
Falsche Syntax in der Nähe von t2' :
WITH XMLNAMESPACES (
'v3.test.com' as commons,
'v1.produkt.com' as v1)
SELECT [t1].[produktnr],
[t1].[pro],
[t2].*
FROM [tab1] t1
cross APPLY (SELECT IIF([t2].[zeile] = 1,[t2].[telnr],NULL)
FROM ( SELECT [t2].[produktnr], [t2].[telnr], ROW_NUMBER() OVER (PARTITION BY [t2].[produktnr] ORDER BY [t2].[telnr]) AS Zeile
FROM [tab2] t2
WHERE [t2].[produktnr] = t1.[produktnr]
) tel
union
(SELECT
IIF([t2].[Zeile] > 1,[t2].[telnr],NULL)
FROM ( SELECT [t2].[produktnr], [t2].[telnr], ROW_NUMBER() OVER (PARTITION BY [t2].[produktnr] ORDER BY [t2].[telnr]) AS Zeile
FROM [tab2] t2
WHERE [t2].[produktnr] = t1.[produktnr]
) tels
FOR XML PATH('')
)) t2(liste)
WHERE [t1].[pro] IS NOT NULL
FOR XML PATH('v1:journal')
In der Form, frage ich nach einem produktnr und dazu gehörrige tel. Wenn zu einem Produktnr mehr als ein tel vorhanden ist, muss es in deue zusätzöcieh Argument gespeichert werden und o aussehen, als Ergebnis:
<v1:produktnr id="123">
<v1:pros>
<v1:pro>taschenbuch bronze</v1:pro>
</v1:pros>
<tel>256x</tel>
<tels>456a</tels>
<v1:journal>
</journals>
Crosspost https://www.computerbase.de/forum/threads/xml-aus-tabellen-erstellen.1906143/