110,533
社区成员
发帖
与我相关
我的任务
分享
private GHEntities db = new GHEntities();
..............................略
IQueryable<ListForOpenTransactionVM> localDB = null;
localDB = (from o in db.tz_OpenTransactions
group o by new { o.UID, OpenDateYM = o.OpenDate.Year + "-" + o.OpenDate.Month} into g
orderby g.Key.OpenDateYM,g.Key.UID descending
select new ListForOpenTransactionVM
{
UID = g.Key.UID,
OpenDateYM = g.Key.OpenDateYM,
CountOT = g.Count(),
Account = db.Accounts.FirstOrDefault(a => a.ID == g.Key.UID)
}).Take(12);
DataTable dt = new DataTable();
dt.Columns.Add("Department");
dt.Columns.Add("OpenDate");
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 12, 1, 0, 0, 0) });
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 5, 1, 0, 0, 1) });
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 6, 1, 0, 0, 2) });
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 6, 2, 0, 0, 3) });
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 6, 3, 0, 0, 4) });
dt.Rows.Add(new object[] { "财务部", new DateTime(2017, 7, 1, 0, 0, 5) });
dt.Rows.Add(new object[] { "人事部", new DateTime(2017, 4, 1, 0, 0, 6) });
dt.Rows.Add(new object[] { "人事部", new DateTime(2017, 7, 1, 0, 0, 7) });
dt.Rows.Add(new object[] { "人事部", new DateTime(2017, 7, 2, 0, 0, 8) });
dt.Rows.Add(new object[] { "人事部", new DateTime(2017, 7, 3, 0, 0, 9) });
var q = from d in dt.AsEnumerable()
group d by new
{
Department = d[0].ToString(),
OpenDate = DateTime.Parse(d[1].ToString()).Date.AddDays(-DateTime.Parse(d[1].ToString()).Day + 1),
} into g
orderby g.Key.OpenDate descending,g.Key.Department
select new
{
部门 = g.Key.Department,
年月 = g.Key.OpenDate.ToString("yyyy-M"),
记录总数 = g.Count()
};
var result = q.ToList();
MessageBox.Show(string.Join(Environment.NewLine, result.ToList()));
localDB = (from o in db.tz_OpenTransactions
group o by new { o.UID, OpenDateYM = o.OpenDate.Year + "-" + o.OpenDate.Month} into g
let date = g.Key.OpenDateYM.Split('-')
orderby Convert.ToInt32(date[0]) descending, Convert.ToInt32(date[1]) descending
select new ListForOpenTransactionVM
{
UID = g.Key.UID,
OpenDateYM = g.Key.OpenDateYM,
CountOT = g.Count(),
Account = db.Accounts.FirstOrDefault(a => a.ID == g.Key.UID)
}).Take(12);
group o by new { o.UID, OpenDateYM = new DateTime(int.Parse(o.OpenDate.Year), int.Parse(o.OpenDate.Month), 0)} into g