TSQL: FOR XML PATH ('') fehlschlägt Gruppierung

8

Ich versuche, Spaltenwerte nach einer bestimmten Spalte mit FOR XML PATH('') in TSQL zu gruppieren. Dies ist in beiden Fällen das Ergebnis (beachten Sie, dass der ohne XML-Code - also SELECT * FROM @xml - mit dem XML-Code identisch ist):

%Vor%

Nach diesem Artikel und Dieser Artikel (Beachten Sie, dass der zweite Artikel die GROUP BY weglässt, von der ich nicht weiß, wie der Autor es geschafft hat, zu ziehen dies ohne es aus - ich habe es versucht und es erzeugt nur alle Werte), sollte die Syntax wie folgt aussehen:

%Vor%

Nach ein paar Stunden, zwischen diesen Beispielen und dem obigen Code, sehe ich nicht, wo ich mich in der Syntax täusche, aber ich erhalte den Fehler "Spalte '@ xml.Animal' ist in der Auswahlliste ungültig, weil Es ist weder in einer Aggregatfunktion noch in der GROUP BY-Klausel enthalten. " Beachten Sie, dass, wenn ich die GROUP BY-Klausel weglasse, die Werte immer noch nicht in der richtigen Weise erzeugt werden. Eine andere Reihe von Augen wäre nützlich.

    
Question3CPO 05.04.2013, 21:11
quelle

1 Antwort

9

Ich denke, Sie haben Ihre WHERE -Klausel mit der falschen Spalte, die Sie verwenden möchten Class nicht Animal :

%Vor%

Siehe SQL Geige mit Demo . Das Ergebnis ist:

%Vor%     
Taryn 05.04.2013, 21:17
quelle