Laden...

Abfrage XML

Erstellt von Anna85 vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.066 Views
Thema geschlossen
A
Anna85 Themenstarter:in
59 Beiträge seit 2019
vor 4 Jahren
Abfrage XML

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>


Thema geschlossen