我有2个参数的列表' s(动态)
每个列表可能具有相同的datetime
和不同的price
- DateTime -- Price
- 10/10/10 -- 100
- 11/11/11 -- 111
- 11/11/11 -- 100
- 10/10/10 -- 122
- etc
现在我需要将它们结合起来。因为我只看到1个日期时间和1个价格
- DateTime -- Price
- 10/10/10 -- 222
- 11/11/11 -- 211
- etc
这里是代码
var data = db.CheckOut.Where(x => x.ISOrderComplete == true).OrderBy(c => c.Order.OrderDate).ToArray()
.GroupBy(y => new { OrderDate = y.Order.OrderDate, TotalPrice = y.TotalPrice })
.Select(a => new { OrderDate = a.Key.OrderDate, TotalPrice = a.Key.TotalPrice })
.ToList();
我尝试添加函数
var data = db.CheckOut.Where(x => x.ISOrderComplete == true).OrderBy(c => c.Order.OrderDate).ToArray()
.GroupBy(y => new { OrderDate = y.Order.OrderDate, TotalPrice = y.TotalPrice })
.Select(a => new { OrderDate = a.Key.OrderDate, TotalPrice = a.Sum(b => b.TotalPrice) })
.ToList();
我该怎么办?
我在db中不需要这笔钱。我需要这笔钱来显示图表中有关公司的统计数据,所以我需要将每个数据相加得多少。
答案 0 :(得分:1)
var data = db.CheckOut.Where(x => x.ISOrderComplete == true)
.GroupBy(y => new { OrderDate = y.Order.OrderDate})
.Select(a => new { OrderDate = a.Key.OrderDate, TotalPrice = a.Sum(b => b.TotalPrice)})
.OrderBy(c => c.Order.OrderDate)
.ToList();
答案 1 :(得分:1)
遵循deramko方法,唯一缺少的是您不应按OrderDate
分组,而应OrderDate.Date
分组,因为时间可能不同。
尝试这样的事情:
var data = db.CheckOut.Where(x => x.IsCheckoutComplete)
.GroupBy(x => new { OrderDate = x.Order.OrderDate.Date})
.Select(a => new { OrderDate = a.Key.OrderDate, TotalPrice = a.Sum(b => b.Order.TotalPrice)})
.OrderBy(c => c.OrderDate)
.ToList();
上查看
答案 2 :(得分:0)
在Linq我们不能分组orderdate.date
所以我把它分开了。然后我们可以通过date
订购。
public JsonResult TotalIncomeJson()
{
var tempD = db.CheckOut.Where(x => x.ISOrderComplete).ToList();
var data = tempD.GroupBy(x => x.Order.OrderDate.Date).Select(y => new { OrderDate = y.Key, TotalPrice = y.Sum(a => a.TotalPrice) })
.OrderBy(b=>b.OrderDate.Year).ToList();
return Json(data, JsonRequestBehavior.AllowGet);
}