Мой стол, как нижеГруппировка элементов и подсчитывать
Main_ID | Child_ID | Activity |
1 |1 | Start
1 |2 | Stop
1 |3 | Stop
2 |1 | Start
2 |3 | Stop
То, что я ищу, как
Main_ID | Start | Stop
1 |1 |2
2 |1 |1
Итак, в первой колонке я хочу перечислить все Main_Ids и различные деятельности по горизонтали , После этого я хочу отобразить счетчик отдельных дочерних_иддов под каждым действием для Main_ID.
То, что я пытался это
var result = from q in db.Table
where q.Child_ID != null
group 1 by new { q.Main_ID,q.Child_ID, q.Activity } into g
select new MyList
{
Main_ID = g.Key.Main_ID,
Child_ID = g.Key.Child_ID,
Activity = g.Key.Activity,
Count = g.Count()
}
into p orderby p.Main_ID,p.Child_ID select p;
Но с этим я не получаю то, что я сказал.
я достиг за Child_ID с помощью следующего
var result2 = result.GroupBy(x => x.Child_ID)
.Select(grp => new MyList2
{
Child_ID = grp.Key,
StartCount = grp.Where(x => x.Activity == "Start")
.Select(x => x.Count).Cast<Int32>().FirstOrDefault(),
StopCount = grp.Where(x => x.Activity == "Stop")
.Select(x => x.Count).Cast<Int32>().FirstOrDefault()
});
Не знаю, как отобразить его против Main_ID
Вы должны добавить больше, чем тег 'linq' к этому – rbr94