行の数が可変である場合、これを行うにはかなりの方法はありません。
これは、このquestionの回答に大きく依存しています。実行する前にクエリを動的に構築する必要があります。
DECLARE @cols AS NVARCHAR(MAX),
@query AS NVARCHAR(MAX)
-- Build a list of ids for each of the selected rows
SELECT @cols = STUFF((SELECT ',[' + convert(varchar,ROW_NUMBER() OVER (ORDER BY LEFT([vorname],1),LEFT([Name],1) ) ) + ']'
FROM #ADR_Adressen
LEFT JOIN ADR_GruppenLink gl ON gl.AdressNrADR = a.AdressNrADR
WHERE a.Z_Klasse = 'BA' AND gl.GruppeADR != 'KIND'
FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'')
-- Build a query using the list of IDs selected above. These are pivotted into column names
set @query = N'SELECT ' + @cols + N' from
(
select
ROW_NUMBER() OVER (ORDER BY LEFT([vorname],1),LEFT([Name],1) ) ID,
LEFT(vorname,1) + ''.'' + LEFT(Name,1) Name
from #ADR_Adressen a
LEFT JOIN ADR_GruppenLink gl ON gl.AdressNrADR = a.AdressNrADR
WHERE a.Z_Klasse = 'BA' AND gl.GruppeADR != 'KIND'
) x
pivot
(
max(Name)
for ID in (' + @cols + N')
) p
'
exec sp_executesql @query;
更新:使用して、何のIDフィールドは、私が
Query example
いくつかのアイデア[ここ](http://stackoverflow.com/questions/194852/concatenate-many-rows-into-a-single-text-string)を見てみてください。第2のものは十分に単純です。 – SMM
なぜデータを列として必要としますか?表示レイヤ(レポート、Webページ、フォームなど)の方がデータレイヤーよりもずっと簡単です。 –