У меня есть набор данных, как показано ниже моего Payment
таблицыМножественные данные Группа
DateIssue | Amount | CoursePaidForMonth |
2/3/2011 9:54:07 PM | 2000.00| 2
2/27/2011 2:22:58 PM | 80.00| 2
3/5/2011 11:14:56 PM | 80.00| 3
3/27/2011 2:22:58 PM | 80.00| 2
2/8/2011 6:32:45 PM | 80.00| 2
Я хотел бы выполнить два набора группирования для данных выше:
Дата закрытия по 27 из каждого месяца, поэтому я хотел бы сгруппировать все данные от 27 до 26 следующего месяца в группу. Это успешно выполняется с
gName
. БЕЗ ПРОБЛЕМ !! Проверьте выход как изображение ниже.DateIssue AppendCommToMonthΞΞ CoursePaidForMonthΞΞ TotalAmountΞΞ 2/8/2011 6:32:45 PM 2 2 2080.00 2/27/2011 2:22:58 PM 3 2 160.00 3/27/2011 2:22:58 PM 4 2 80.00
Теперь я хотел бы выполнить другую группировку по тому же запросу. Я хотел бы также сгруппировать
CoursePaidForMonth
. Сказанное означает, что конечный результат должен отображать 4 строки записей вместо 3, он группируется от 27 в этом месяце до 26 следующего месяца в группу, а такжеCoursePaidForMonth
. Как это сделать?DateIssue AppendCommToMonthΞΞ CoursePaidForMonthΞΞ TotalAmountΞΞ 2/8/2011 6:32:45 PM 2 2 2080.00 2/27/2011 2:22:58 PM 3 2 80.00 3/5/2011 11:14:56 PM 3 3 80.00 3/27/2011 2:22:58 PM 4 2 80.00
Мой код здесь:
var result = from p in db.Payments
join soi in db.SaleOrderItems on p.ReferenceId equals soi.Id
join ct in db.CourseByTutors on soi.InventoryOrCourseId equals ct.CourseId
where p.PayType == (int)PayTypes.PayCourseFee
&& ct.TutorId == tutorId
let gName = (p.DateIssue.Value.Day < 27) ? (p.DateIssue.Value.Month) : (p.DateIssue.Value.Month % 12 + 1)
group p by new { gName} into g
select new
{
DateIssue = g.Select(x => x.DateIssue).First(),
AppendCommForWhichMonth = g.Key.gName,
CoursePaidForMonth = g.Select(x => x.CoursePaidForMonth).First(),
TotalAmount = g.Sum(x => x.Amount),
};
Пожалуйста совет ..
привет, пожалуйста, сообщите мне, если мой вопрос не имеет смысла для u – VeecoTech
. Я отредактировал вопрос. HOpe теперь имеет больше смысла – VeecoTech