LINQ to SQL Группировка и подсчет - PullRequest
0 голосов
/ 30 января 2012

Я искал решение, но ничего подобного.Моя проблема заключается в том, что я хочу выбрать данные из базы данных, сгруппировать их по идентификатору пользователя и сосчитать по идентификатору статуса

Пользователи

UserID
Name

Назначения

UserID
ClientID
Status
StartDate

Статус можетбыть активным = 1, отменено = 2, выполнено = 3

Так я буду отображать результаты.

Results table

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 30 января 2012

В вашем вопросе вы говорите, что хотите группировать по UserId, но в выводе вы показываете Name.Этот запрос будет сгруппирован по обоим.Вы можете настроить его под свои нужды.

from u in tblUsers
join a in tblAppointments on u.UserID equals a.UserID
group a by new { u.UserID, u.Name } into g
select new
{
    Name     = g.Key.Name,
    Active   = g.Count (x => x.Status == 1),
    Canceled = g.Count (x => x.Status == 2),
    Done     = g.Count (x => x.Status == 3)
}

(это будет обрабатывать случай, если два пользователя имеют одно и то же имя)

0 голосов
...