LinQ语句用group by实现分组
用group by into进行分组
(作者:邱名涛,撰写时间:2019年1月16日)
关键字 | 说明 |
---|---|
from | 指定范围变量和数据源 |
where | 根据bool表达式从数据源中筛选数据 |
select | 指定查询结果中的元素所具有的类型或报答形式 |
group | (对查询结果按照键/值执行分组) |
into | 提供了一个标识符,它可以充当对join、group或select 子句结果的引用 |
orderby | 对查询出的元素执行排序ascending /descending |
join | 按照两个指定匹配条件对等连接两个数据源 |
操作代码:
//通过上面listDateTime的查询方法,将数据查询出来后,进行下面的分组。
//group tb by tb.StartTime1声明你要分组的是哪张表,什么类型!然后创建一个变量去接收。
//tb=表 、tb.StartTime1=分组字段、GrMarketingDate=新的变量
group tb by tb.StartTime1 into GrMarketingDate
select new ShangPinVo
{
marketingID = GrMarketingDate.OrderByDescending(m => m.MarketingSubdivideID).FirstOrDefault().marketingID,
StartTime1 = GrMarketingDate.OrderByDescending(m => m.MarketingSubdivideID).FirstOrDefault().StartTime1,//相同的日期
Number = GrMarketingDate.Sum(m => m.Number),//相同的物品销售数
MarketingPrice = GrMarketingDate.Sum(m => m.MarketingPrice),//相同的物品销售金额
Stock = GrMarketingDate.Sum(m => m.Stock),//成本金额
}).ToList();
效果演示: