MS SQL - Kommasepariertes Resultat

spaceman007

Aktives Mitglied
Hallo zusammen

hab mich grad geärgert, eigentlich brauche ich etwas ganz einfaches... ich habe eine tabelle T1 mit 100 datensätzen und eine zweite tabelle T2 mit referenzen zu diesen datensätzen (ca 1-5 Referenzen zu datensätzen in T1). wenn ich nun T1 Selektiere bekomme ich 100 datensätze, wenn ich einen inner join mit T2 mache bekomme ich... 400 datensätze. nun soweit ja mal alles klar und muss auch so sein.

Anstelle der 400 Datensätze hätte ich jetzt aber lieber wieder meine 100 von T1 plus eine kommaseparierte Liste mit den referenz daten aus T2 als ein zusätzliches Resultatfeld...

Muss ich da wirklich eine MS SQL funktion schreiben die durch T2 looped und ein resultat als string zurückgibt oder gibt's da etwas einfacheres? hätte jemand diese funktion schon?

Thanks

Spaceman007
 
Hab's mit einer Function gemacht:

CODE
CREATE FUNCTION dbo.udf_getListOfPresentatorsByEventID(@EventID integer)
RETURNS VARCHAR(1000) AS

BEGIN
DECLARE @PresentatorIDs varchar(1000)
set @PresentatorIDs = ''

SELECT @PresentatorIDs = @PresentatorIDs + ',' + COALESCE (rtrim(firstname) + ' ' +rtrim(lastname), '')
FROM Event_Presentator T1
INNER JOIN User_Main T2 ON T1. UserID =T2.UserID
WHERE T1.EventID=@EventID

return @PresentatorIDs;
END




Aufruf:

QUOTE
SELECT T1.*,
dbo.udf_getListOfPresentators(T1.EventID) AS Presentators
FROM Event T1



Gruss

Spaceman007

 
Versuchs mal damit:

CODE SELECT *, GROUP_CONCAT(DISTINCT t2.referenz ORDER BY t2.referenz ASC SEPARATOR ',')
FROM tabelle1 t1, tabelle2 t2
WHERE t1.id = t2.id
GROUP BY t1.id
 
Zurück
Oben