Sorgumun sözdizimi iyi ama çıktı değil ve gerçekten garip.LINQ groupby bildirimi
| 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 3 yeniden planlanan içindir ve 4 iptal için, 2 katıldı, 1 grubu için bir bayt olup:
Aşağıdaki tablo var. AppointDatetime, randevunun ayarlandığı tarihtir.
Yapmaya çalıştığım şey, etkinliği güne göre sayan aşağıdaki çıktıyı oluşturmaktır.
| 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 | |
Şimdiye dek sahip olduğum şey budur. Ben sorgulama ediyorum ay içinde bir tarih thedate olan CountTotalSetOnDay ayarlanmış olanlara ve sadece sayımını dönüyor bu sorunun
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(),
biri (yani 4 Mart'tan geçmek ve Mart tablo dönmelidir) aynı gün çözüldü; Diğer problem ViewDate'in tüm tarihleri geri göndermesi gerektiğidir: atanmış randevu yokken randevuların olduğu, randevu alındığı veya iptal edildiği veya tam tersi, randevuların ayarlandığı fakat hiçbirinin çözülmediği tarihler vardır.
Şimdilik bunu 2 sorgu ile çalıştırıyorum ve sonuçlara katılıyorum: bir sorgu, randevuları döndürür ve diğeri, çözülen randevuları döndürür. Ancak, hala bir okuma ile bir sorgu ile çözüm üzerinde sıkışmış.
Herhangi bir öneriniz var mı?
Teşekkürler.
Evet, bu benim takıldığım sorun. Ayrıca, bir randevu ayarının olduğu ancak randevunun çözülmediği bir tarih olduğu durumlar da olacaktır. – frenchie
Bu kafa karıştırıcı; Bu randevuları nereye alıyor? – frenchie
Sadece 'Giriş' sütununu tablo girişlerinizden nasıl alacağınızı gösteren bir örnek. Her bir tarih ve çıkış tablonuzdaki her alan için aynı şeyi yaparsanız, hedefinize ulaşmak için ihtiyacınız olan tüm bilgilere sahip olmalısınız. – tugudum