2012-01-26 10 views
0

私は、1つの列を除いてすべての列の値が同じであることを繰り返す行を含む行の数を選択するクエリを持っています。
私がしたいことは、すべての繰り返し行のX列値のすべての値を結合し、値を '、' charで区切ることです。私が使用
クエリ:1列で異なる再編集行の列値を結合する方法はありますか?

SELECT App.ID,App.Name,Grp.ColumnX 
FROM (
SELECT * FROM CustomersGeneralGroups AS CG WHERE CG.GeneralGroups_ID IN(1,2,3,4) 
) AS GroupsCustomers 
LEFT JOIN Appointments AS App ON GroupsCustomers.Customers_ID = App.CustomerID 
INNER JOIN Groups AS Grp ON Grp.ID = GroupsCustomers.GeneralGroups_ID 
WHERE App.AppointmentDateTimeStart > @startDate AND App.AppointmentDateTimeEnd < @endDate 

異なります列はCOLUMNX、列のIDと名前が同じになりますが、COLUMNXは異なるものになりますです。
例:
クエリはこれらのような行が返されます場合:

ID  Name  ColumnX 
1   test1   1 
1   test1   2 
1   test1   3 

私はなりたい結果は次のとおりです。

ID  Name  ColumnX 
1   test1  1,2,3 

私はLINQでそれをしなければならない場合、私は気にしませんSQLではありません。
linqでGroupByを使用しましたが、ColumnX値をマージします。

答えて

0

あなたがオブジェクトにロードされ、このデータを持っている場合、あなたはそのようにこれを達成するためにLINQのメソッドを使用することができます。

var groupedRecords = 
    items 
    .GroupBy(item => new { item.Id, item.Name }) 
    .Select(grouping => new 
     { 
      grouping.Key.Id, 
      grouping.Key.Name, 
      columnXValues = string.Join(",", grouping.Select(g => g.ColumnX)) 
     }); 
関連する問題