销售按月分组,然后按产品分组

时间:2011-01-01 16:05:09

标签: linq

我想获得按产品订购的每个月的销售清单。

目前我有以下linq查询:

        var query = storeDB.OrderDetails
            .Select(od => od)
            .GroupBy(r => r.Product)
            .Select(group => new ProductSalesModel {
                Product = group.Key,
                Sales = group.Sum(s => s.Quantity),
                Amount = group.Sum(s => s.Quantity * s.UnitPrice)
            })
            .OrderByDescending(x => x.Amount);

如何按月从我的订单表中获取销售日期来对列表进行分组? Order.CreationDate?

2 个答案:

答案 0 :(得分:2)

我不知道您尝试使用的Linq提供程序,但在简单的Linq中,这应该可行:

 .GroupBy(r => new {r.Product, r.CreationDate})

然后选择:

.Select(group => new ProductSalesModel {
                Product = group.Key.Product,
                CreationDate = group.Key.CreationDate,
                Sales = group.Sum(s => s.Quantity),
                Amount = group.Sum(s => s.Quantity * s.UnitPrice)
            })

答案 1 :(得分:0)

如果您想按照需要在分组中进行排序。 然后,您可以使用OrderByDescending(t=> t.amount).ThenBy(y => y.OrderDate)