【发布时间】:2019-05-10 05:50:54
【问题描述】:
我有
table1和一组标准值monthname和monthnumber。另一个
table2有很多列,但我想与列名CreateDate.Month进行比较。想获取
table2的所有记录条件是(一月到四月的数据)在表 2 中,如果相应月份的记录不可用,则不可用月份的计数应为 0
我正在寻找作为 Linq 语句的答案。
List<monthNames> defaultMonthNames = new List<monthNames>
{
new monthNames { monthNumber = 1, monthName = "Jan"},
new monthNames { monthNumber = 2, monthName = "Feb"},
new monthNames { monthNumber = 3, monthName = "Mar"},
new monthNames { monthNumber = 4, monthName = "Apr"},
new monthNames { monthNumber = 5, monthName = "May"},
new monthNames { monthNumber = 6, monthName = "Jun"},
new monthNames { monthNumber = 7, monthName = "Jul"},
new monthNames { monthNumber = 8, monthName = "Aug"},
new monthNames { monthNumber = 9, monthName = "Sep"},
new monthNames { monthNumber =10, monthName = "Oct"},
new monthNames { monthNumber = 11, monthName = "Nov"},
new monthNames { monthNumber = 12, monthName = "Dec"},
};
var Toprecords = somedata.Join(defaultMonthNames,
tc => tc.CreatedDate.Month, dmn =>
dmn.monthNumber,
(tc, dmn) => new
{ TopClients = tc.CreatedDate.Month,
defaultMonthNames = dmn
}).GroupBy(a => new
{
a.ClientId,
a.CreatedDate.Month
}).Select(m => new
{
label = m.Select(a =>
a.ClientName).FirstOrDefault(),
NoOfOrders = m.Count(),
monthnumber =
m.Select(a=>a.CreatedDate.Month).FirstOrDefault()
}).ToList();
表1:
EmpName createdDate
Name1 12-01-2019
Name2 02-02-2019
Name3 05-02-2019
Name4 08-02-2019
Name5 02-03-2019
Name6 04-09-2019
表2:
monthName monthnumber
Jan 1
Feb 2
Mar 3
Apr 4
预期输出:
EmpName MonthName count
Name1 Jan 1
Name1 Feb 0
Name1 Mar 0
Name1 Apr 0
Name2 Jan 0
Name2 Feb 1
Name2 Mar 0
【问题讨论】:
标签: c# asp.net-mvc linq