Funktion erstellen, die Texte verbindet

jenpet

Neuer Benutzer
Beiträge
3
Hallo,

ich habe gerade ein Problem mit einer Funktion die ich erstellen möchte und komme da einfach nicht weiter.

Ich habe eine Tabelle mit Berichten und die Berichte haben auch IDs (ToDoID).

Ich wollte mit einer Funktion die Berichte zusammenfassen, die die gleiche ID haben.

Also wenn es in der Tabelle 2 Berichte gibt die die ID 29 haben, sollen diese Berichte zusammengeschrieben werden.
Als wenn ich 2 Strings zusammenfüge mit einem Leerzeichen oder einem Zeilenumbruch dazwischen. (strText1 = strText1 + " " + strText2).
Das blöde ist, dass die Berichte vom Typ Text sind und ich in der Funktion nicht Text returnen kann.

Ich habe schon versucht die Texte zu summieren oder mit CAST den Text in Varchar zu wandeln.

Ich habe das so probiert, aber das funktioniert nicht.

Create FUNCTION [dbo].[getDescription](@ToDo Integer)
Returns Varchar(Max)
AS
BEGIN
IF (Select Count(*) From Arbeitsbericht where ToDoID = @ToDo) > 0
BEGIN
Return(SELECT SUM(Beschreibung ) From Arbeitsbericht )
END
Return (Select Beschreibung) From Arbeitsbericht)
END

Bestimmt gibt es eine ganz einfache Art, wie man das lösen kann, aber ich komm gerade einfach nicht weiter.

Vielen Dank im Voraus für die Antworten!
 
Werbung:
Werbung:
Ok es klappt jetzt mit diesem Code kriege ich genau das, was ich haben wollte

ALTER FUNCTION [dbo].[getDescription](@ToDo Integer)
Returns Varchar(Max)
AS
BEGIN
Return (SELECT Top(1) STUFF(
(SELECT ',' + Convert(varchar(max),s.Beschreibung)
FROM Arbeitsbericht s
WHERE s.ToDoID = @ToDo
FOR XML PATH('')),1,1,'') AS Beschreibung
FROM Arbeitsbericht AS t
GROUP BY t.ToDoID)
END

Danke nochmal für die Links und Schlüsselwörter!
 
Zurück
Oben