के साथ LINQ groupby कथन मेरी क्वेरी का सिंटैक्स अच्छा है लेकिन आउटपुट नहीं है और यह वास्तव में अजीब है।कुंजी
| 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, 2 के लिए भाग लिया है, एक बाइट जहां 1 सेट के लिए है 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 केवल उन सेट कर रहे हैं कि और की गिनती लौटा रहा है उसी दिन हल किया; दूसरी समस्या यह है कि व्यूडेट को सभी तिथियों को वापस करने की आवश्यकता है: ऐसी तिथियां हैं जब कोई अपॉइंटमेंट सेट नहीं होती है लेकिन अपॉइंटमेंट्स में भाग लिया जाता है, पुनर्निर्धारित या रद्द किया जाता है, और इसके विपरीत, नियुक्तियां सेट होने पर तिथियां होती हैं लेकिन कोई भी हल नहीं होता है।
अभी के लिए मैं इसे 2 प्रश्नों के साथ चला रहा हूं और मैं परिणामों में शामिल हूं: एक प्रश्न नियुक्तियों को सेट करता है और दूसरा नियुक्तियों को हल करता है। हालांकि, मैं अभी भी एक पठन में एक प्रश्न के साथ समाधान पर अटक गया हूँ।
कोई सुझाव?
धन्यवाद।
हां, यही समस्या है जिस पर मैं फंस गया हूं। और, ऐसे मामले भी होंगे जहां एक तारीख है जिसके लिए नियुक्ति सेट है लेकिन कोई अपॉइंटमेंट हल नहीं हुआ है। – frenchie
यह भ्रमित है; यह var नियुक्तियां कहाँ जाती है? – frenchie
यह आपको दिखाने के लिए एक उदाहरण है कि अपनी तालिका प्रविष्टियों से 'सेट' कॉलम कैसे प्राप्त करें। यदि आप अपनी आउटपुट टेबल में प्रत्येक दिनांक और प्रत्येक आवश्यक फ़ील्ड के लिए एक ही काम करते हैं, तो आपके पास अपने लक्ष्य को पूरा करने के लिए आवश्यक सभी जानकारी होनी चाहिए। – tugudum