これは、ものよりも FOR XML を使用する方が簡単です。FORM XML 句をだましてコンマ区切りリスト (CSV) を生成できることに注意してください。
以下の例は、あなたが求めていることを正確に行う必要があります。
CREATE TABLE moneyagegender
(
[Money] INT,
[Age] INT,
[Gender] VARCHAR(2)
);
INSERT INTO moneyagegender
VALUES (860, 9, 'F'),
(860, 15, 'M'),
(860, 15, 'M'),
(860, 16, 'M'),
(860, 16, 'F');
SELECT mag.money,
(SELECT Substring((SELECT ', ' + CAST(m2.age AS VARCHAR(1024))
FROM moneyagegender m2
WHERE m2.money = mag.money
ORDER BY m2.age
FOR XML PATH('')), 3, 10000000) AS list) AS ages,
(SELECT Substring((SELECT ', ' + m3.gender
FROM moneyagegender m3
WHERE m3.money = mag.money
ORDER BY m3.age
FOR XML PATH('')), 3, 10000000) AS list) AS genders
FROM moneyagegender mag
GROUP BY mag.money;
ここに出力があります。
Money Ages Genders
----------- -------------------- -----------------
860 9, 15, 15, 16, 16 F, M, M, M, F
(1 row(s) affected)
これが役立つことを願っています。
詳細が必要な場合は、これについて説明している昨年のブログ投稿があります。
http://stevestedman.com/2011/10/converting-part-of-a-result-set-to-a-comma-separated-list/