myCSharp.de - DIE C# und .NET Community
Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 
 | Suche | FAQ

» Hauptmenü
myCSharp.de
» Startseite
» Forum
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Suche
» Regeln
» Wie poste ich richtig?
» Forum-FAQ

Mitglieder
» Liste / Suche
» Wer ist wo online?

Ressourcen
» openbook: Visual C#
» openbook: OO
» Microsoft Docs

Team
» Kontakt
» Übersicht
» Wir über uns

» myCSharp.de Diskussionsforum
Du befindest Dich hier: Community-Index » Diskussionsforum » Entwicklung » Datentechnologien » Abfrage XML
Letzter Beitrag | Erster ungelesener Beitrag Druckvorschau | Thema zu Favoriten hinzufügen

geschlossen (weitere Infos)
Zum Ende der Seite springen  

Abfrage XML

 
Autor
Beitrag « Vorheriges Thema | Nächstes Thema »
Anna85 Anna85 ist weiblich
myCSharp.de-Mitglied

Dabei seit: 11.04.2019
Beiträge: 59
Herkunft: Ulm


Anna85 ist offline

Abfrage XML

Beitrag: beantworten | zitieren | editieren | melden/löschen       | Top

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'

:

Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
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:

Code:
1:
2:
3:
4:
5:
6:
7:
8:
<v1:produktnr id="123">
    <v1:pros>
      <v1:pro>taschenbuch bronze</v1:pro>
    </v1:pros>
       <tel>256x</tel>
       <tels>456a</tels>
          <v1:journal>
</journals>

Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von Anna85 am 22.11.2019 13:58.

22.11.2019 13:55 Beiträge des Benutzers | zu Buddylist hinzufügen
myCSharp.de
Moderationshinweis von Abt (22.11.2019 14:50):

Crosspost  https://www.computerbase.de/forum/thread...tellen.1906143/
 
Baumstruktur | Brettstruktur       | Top 
myCSharp.de | Forum
geschlossen (weitere Infos)


© Copyright 2003-2019 myCSharp.de-Team | Impressum | Datenschutz | Alle Rechte vorbehalten. | Dieses Portal verwendet zum korrekten Betrieb Cookies. 13.12.2019 14:58