Mit hilfe des folgenden SQL Script, kann eine CSV generiert werden, mit welchem alle Komponenten in eine Spalte einer Zeile zusammen gefasst werden, dadurch entsteht eine CSV, welche man per Ameise Importieren kann.
declare @quantityDelimiter varchar(1) = ';' declare @productDelimiter varchar(1) = '|' ; WITH x AS (SELECT a.kArtikel 'Father' ,CONVERT(NVARCHAR(MAX), CONCAT(FORMAT(st.fAnzahl, 'g15'), @quantityDelimiter, a2.cArtNr)) 'Child' ,r1 = ROW_NUMBER() OVER (PARTITION BY a.cArtNr ORDER BY a2.cArtNr) FROM tartikel a JOIN dbo.tStueckliste st ON a.kStueckliste = st.kStueckliste JOIN dbo.tArtikel a2 ON st.kArtikel = a2.kArtikel WHERE a.kStueckliste != 0), a AS (SELECT Father ,@productDelimiter + Child AS 'Child' ,r1 FROM x WHERE r1 = 1), r AS (SELECT Father ,Child ,r1 FROM a WHERE r1 = 1 UNION ALL SELECT x.Father ,r.Child + @productDelimiter + x.Child ,x.r1 FROM x INNER JOIN r ON r.Father = x.Father AND x.r1 = r.r1 + 1) SELECT a.cArtNr ,ab.cName ,t1.* FROM (SELECT Father ,'Komponente' 'FieldName' ,STUFF(REPLACE(MAX(Child), CONCAT(@productDelimiter, '1', @quantityDelimiter), @productDelimiter), 1, 1, '') AS 'FieldValue' FROM r GROUP BY Father) t1 JOIN dbo.tArtikel a ON t1.Father = a.kArtikel JOIN dbo.tSpracheUsed spu ON spu.nStandard = 1 JOIN dbo.tArtikelBeschreibung ab ON ab.kArtikel = t1.Father AND ab.kSprache = spu.kSprache AND ab.kPlattform = 1 AND ab.kShop = 0 OPTION (MAXRECURSION 0)