Синтаксис моего запроса хорош, но не выводится, и это действительно странно.
У меня есть следующая таблица:
| AppointID | UserID | AppointSet | AppointResolved | AppointStatus | AppointmentDatetime
| 1 | 1 | 3/1/2011 | 3/1/2011 | 1 | 3/15/2011
| 2 | 1 | 3/2/2011 | 3/5/2011 | 4 | 3/16/2011
| 3 | 1 | 3/2/2011 | 3/11/2011 | 2 | 3/11/2011
| 4 | 1 | 3/3/2011 | 3/7/2011 | 3 | 3/25/2011
ApponintStatus - это байт, где 1 для установки,2 для посещенных, 3 для перенесенных и 4 для отмененных.AppointDatetime - это дата, для которой установлено назначение.
Я пытаюсь создать следующий вывод, который подсчитывает активность по дням.
| Date | Set | Attended | Rescheduled | Cancelled |
| 3/1/2011 | 1 | | | |
| 3/2/2011 | 2 | | | |
| 3/3/2011 | 1 | | | |
| 3/5/2011 | | | | 1 |
| 3/7/2011 | | 1 | | |
| 3/11/2011 | | | 1 | |
Это то, что у меня естьдо сих пор.TheDate - это дата в месяце, к которому я обращаюсь (т. Е. Пройти 4 марта и должна вернуть таблицу марта)
var r = from appnt in MyDC.LeadsAppointments
where appnt.UserID == TheUserID
where (appnt.AppointResolved.Year == TheDate.Year && appnt.AppointResolved.Month == TheDate.Month) ||
(appnt.AppointSet.Year == TheDate.Year && appnt.AppointSet.Month == TheDate.Month)
group appnt by appnt.AppointResolved.Date into daygroups
select new ViewMonthlyActivityModel()
{
ViewDate = (from d in daygroups
select daygroups.Key.Date).First(), // Problem here: need to get dates for instances where an appointment is set but none are resolved
CountTotalSetOnDay = (from c in daygroups
where c.AppointSet.Date == daygroups.Key // Problem here
select c.AppointID).Count(),
CountAttendedOnDay = (from c in daygroups
where c.AppointResolved.Date == daygroups.Key.Date
where c.AppointStatus == 2
select c.AppointID).Count(),
Одна из проблем заключается в том, что CountTotalSetOnDay возвращает только число тех, которыеустановить и разрешить в тот же день;другая проблема заключается в том, что ViewDate должен возвращать все даты: есть даты, когда встречи не установлены, но встречи посещены, перенесены или отменены, и наоборот, есть даты, когда встречи установлены, но ни одна не решена.
Пока я выполняю это с 2 запросами и присоединяюсь к результатам: один запрос возвращает набор назначенных встреч, а другой возвращает разрешенные встречи.Тем не менее, я по-прежнему застрял в решении с одним запросом в одном чтении.
Есть предложения?
Спасибо.