Felder aus mehreren Zeilen in einem Feld zusammführen.

06/06/2008 - 13:50 von AndreT78 | Report spam
Besser konnte ich es nicht beschreiben.

Hallo zusammen

ich habe 2 Tabellen (1:n)

zB
Tabelle1: Wareneingànge
Tabelle2: Wareneingangspositionen mit dem Feld der Artikelnummer

nun möchte ich eine Ergebnistabelle haben, in der in der ersten Spalte die
Wareneingangsnummer (aus Tabelle1) steht und in der 2 Spalte alle
Artikelnummern (aus Tabelle 2) meinetwegen Komma oder Leerzeichen getrennt.

Gibt es da eine Möglichkeit das mit einem SQL-Statement zu machen?


Herzlichen Dank

Gruß Andre
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
06/06/2008 - 14:07 | Warnen spam
Hallo Andre ohne Nachname,

"AndreT78" schrieb:

nun möchte ich eine Ergebnistabelle haben, in der in der ersten Spalte die
Wareneingangsnummer (aus Tabelle1) steht und in der 2 Spalte alle
Artikelnummern (aus Tabelle 2) meinetwegen Komma oder Leerzeichen getrennt.



CREATE FUNCTION [dbo].[MyFunction]( @ArticleId INT, @Separator VARCHAR(2) )
RETURNS VARCHAR(8000)
AS
BEGIN

DECLARE @Output VARCHAR(8000)
SET @Output = ''
SELECT @Output = CASE @Output
WHEN '' THEN CONVERT( varchar, <Position> )
ELSE @Output + @Separator + CONVERT( varchar, <Position> )
END
FROM <Tabelle>
WHERE <Artikelnummer> = @ArticleId
ORDER BY <Position>

RETURN @Output

END

Aufrufen kannst Du das dann bspw. so:

SELECT ArticleId, dbo.MyFunction( ArticleId, ',' ) AS Positions FROM <Tabelle>

Tschau, 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

Ähnliche fragen