Announcement

Collapse
No announcement yet.

Gruppieren Texte zusammenfügen

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Gruppieren Texte zusammenfügen

    Hallo,
    ich habe folgendes Problem:
    in der Datenbanktabelle "Teile" habe ich zwei Einträge die ich gerne zu einer zusammenfassen möchte
    Zeile Teil Bemerkung
    1 100 Teil wurde am 30.8.2013 geändert
    1 100 Teil wurde am 01.09.2013 geändert

    Ich möchte diese Einträge zusammenfügen als:
    Zeile Teil Bemerkung
    1 100 Teil wurde am 30.8.2013 geändert, Teil wurde am 01.09.2013 geändert

    Ich habe es versucht mit einem Group by Statements, jedoch weiß ich nicht wie man die Texte zusammenfügt.
    Wer kann helfen?

  • #2
    Trivial
    [HIGHLIGHT="SQL"]WITH Data
    AS ( SELECT *
    FROM ( VALUES (1, 100, 'Teil wurde am 30.8.2013 geändert')
    , (2, 101, 'Teil wurde am 01.10.2013 geändert')
    , (3, 100, 'Teil wurde am 01.09.2013 geändert')
    ) AS D(ID, Nr, Txt)
    )
    SELECT DISTINCT
    Nr
    , STUFF (CONVERT (VARCHAR(MAX), y.Txt) , 1, 2, SPACE(0)) As Txt
    FROM Data AS Do
    CROSS APPLY ( SELECT X.Txt AS [text()]
    FROM ( SELECT ', ' + Di.Txt
    FROM Data AS Di
    WHERE Do.Nr = Di.Nr
    ) AS x (Txt)
    ORDER BY do.nr
    FOR XML PATH (''), TYPE
    ) AS Y (txt)
    ;[/HIGHLIGHT]

    Comment

    Working...
    X