Benutzer mit den meisten Antworten
T-Sql (Multi Join)

Frage
-
Hallo,
ein besser Titel ist mir leider nicht eingefallen aber ich denke, dass sicherlich eine elegante T-SQL Möglichkeit existiert, mein folgendes Problem zulösen.
Eine Abfrage/View/Tabelle gibt folgende drei Spalten zurück:
Tag |id |Feld
1;12;Werner
1;12;Hans
1;12;Maria
1;13;Peter
2;12;Fritz
2;12;Dieter
2;14;Sonja
Jetzt soll folgendes passieren: Spalte 1 und Spalte 2 sollen grupperiert werden und der Inhalt in Spalte 3 soll zusammengefaßt werden (alles in einem Datensatz), also so:
Tag |id |Feld
1;12;Werner-Hans-Maria
1;13;Peter
2;12;Fritz-Dieter
2;14;Sonja
Die Anzahl Gruppierungselemente sind also unterschiedlich. Zuerst dachte ich, das läßt sich mit dem PIVOT Befehl umsetzen, habe mich aber getäuscht :)
Vielen Dank im Voraus für Eure Unterstützung
Gruß
Antworten
-
Hi,
lt. MSDN sollte zumindest das hier funktionieren.
SELECT DISTINCT ta.Tag, ta.id, Feldinhalte = STUFF ( ( SELECT '-' + Feld FROM DeineTabelle ti WHERE ti.Tag = ta.Tag AND ti.id = ta.id FOR XML PATH( '' ) ), 1, 1, '' ) FROM DeineTabelle ta ORDER BY ta.Tag, ta.id
"Funktioniert nicht" ist aber leider nichts, mit dem man was anfangen könnte. Kommt eine Fehlermeldung? Falls ja, welche genau?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 25. Oktober 2016 13:21
- Als Antwort vorgeschlagen Elmar BoyeEditor Dienstag, 25. Oktober 2016 19:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 4. November 2016 07:23
Alle Antworten
-
Hi,
probier es mal hiermit:
SELECT DISTINCT ta.Tag, ta.id, Feldinhalte = STUFF ( ( SELECT '-' + Feld FROM DeineTabelle ti WHERE ti.Tag = ta.Tag AND ti.id = ta.id FOR XML PATH( '' ), TYPE ).value( '.', 'NVARCHAR(MAX)' ), 1, 1, '' ) FROM DeineTabelle ta ORDER BY ta.Tag, ta.id
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community -
Hi,
lt. MSDN sollte zumindest das hier funktionieren.
SELECT DISTINCT ta.Tag, ta.id, Feldinhalte = STUFF ( ( SELECT '-' + Feld FROM DeineTabelle ti WHERE ti.Tag = ta.Tag AND ti.id = ta.id FOR XML PATH( '' ) ), 1, 1, '' ) FROM DeineTabelle ta ORDER BY ta.Tag, ta.id
"Funktioniert nicht" ist aber leider nichts, mit dem man was anfangen könnte. Kommt eine Fehlermeldung? Falls ja, welche genau?
Gruß, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community
- Bearbeitet Stefan FalzModerator Dienstag, 25. Oktober 2016 13:21
- Als Antwort vorgeschlagen Elmar BoyeEditor Dienstag, 25. Oktober 2016 19:46
- Als Antwort markiert Dimitar DenkovMicrosoft contingent staff, Administrator Freitag, 4. November 2016 07:23