2011-01-17 6 views
2

ここに私の現在のテーブルデータがあります。次のシナリオでCSV値を取得するためのHOw

AccountNumber   Product 
------------------------------ 
00505871    Product1 
00505871    Product2 
00503297    Product3 
00900004    Product4 
00505871    Product3 
00514884    Product3 
00503297    Product2 
00505871    Product1 

次のような結果が得られます。

AccountNumber  ProductString 
------------------------------------------------ 
00505871    Product1,Product2,Product3 
00503297    Product2,Product3 
00900004    Product4 
00514884    Product3 

おかげで、ソリューションの下

アシシュChotalia

答えて

5
select AccountNumber, 
     stuff((select ',' + Product 
        from YourTable t2 
        where t2.AccountNumber = t1.AccountNumber 
        order by Product 
        for xml path('')),1,1,'') as ProductString 
    from YourTable t1 
    group by AccountNumber 
+0

これは結果を与えるが、私はアカウントごとに個別の製品が欲しいです。 –

+2

@ ashish.chotalia:あなたがあなた自身が投稿した答えで実証したように、単に私があなたに与えた解決策に 'distinct'キーワードを追加するだけです。 –

-2

は私のために働きました。

1.

select AccountNumber, 
     stuff((select ',' + Product 
        from YourTable t2 
        where t2.AccountNumber = t1.AccountNumber 
     Group by Product 
        order by Product   
        for xml path('')),1,1,'') as ProductString 
    from YourTable t1 
    group by AccountNumber 

2.

select AccountNumber, 
     stuff((select distinct ',' +Product 
        from YourTable t2 
        where t2.AccountNumber = t1.AccountNumber 
        group by Product 
        for xml path('')),1,1,'') as ProductString 
    from YourTable t1 
    group by AccountNumber 
+1

-1。あなたは誰かから完全に使える答えを得ました。なぜ彼らの答えを取って、わずかに微調整し、あなた自身の投稿をして、それを受け入れるのではなく、彼自身に微調整を依頼するのですか? –

+0

@Adam、あなたはそこにタイムスタンプを見ることができます、私が出会った2つの方法はここにあります。私はそれがコミュニティに役立つかもしれないと思ったので、答えとしてマークする理由です。 –

+0

はい、ジョーが答えを投稿してから1日後に投稿したことがわかります。クエリに 'distinct'キーワードを追加するだけでうまくいきました。使用可能な回答がない場合は、自分の回答のみを投稿(および受け入れ)する必要があります。 –

関連する問題