【发布时间】:2019-09-20 08:49:55
【问题描述】:
我已经对数据进行了分组,现在看起来像这样:
<tr>
<th>Id</th>
<th>Type</th>
<th>Amount</th>
</tr>
<tr>
<td>1</td>
<td>Delivered</td>
<td>100</td>
</tr>
<tr>
<td>2</td>
<td>Sent</td>
<td>150</td>
</tr>
<tr>
<td>3</td>
<td>Received</td>
<td>110</td>
</tr>
<tr>
<td>4</td>
<td>Delivered</td>
<td>79</td>
</tr>
<tr>
<td>5</td>
<td>Sent</td>
<td>30</td>
</tr>
这是我得到它的代码:
var query = await _context.product.AsNoTracking().Where(x => (x.productDate.Date >= DateTime.Now.AddDays(-30) && x.productDate.Date <= DateTime.Now.Date).ToListAsync();
if (query == null) return null;
var data = query.GroupBy(x => x.productStatusId)
.Select(product => new productsChartDTO
{
Type =
(
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Delivered || product.FirstOrDefault().productStatusId == (int)Enums.productStatus.InProcess ? "Delivered" :
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Sent || product.FirstOrDefault().productStatusId == (int)Enums.productStatus.InProcess ? "Sent" :
product.FirstOrDefault().productStatusId == (int)Enums.productStatus.Received ? "Received" : "Unknown"
),
Amount = product.Sum(x => x.Amount)
});
return data;
大家可以看到,即使我按productStatusId 分组,如果productStatus 在'InProcess' 或'Delivered' 中,就会有Type "Delivered",所以在此之后询问
我在示例中发布了两次“Delivered”类型的结果。
我认为在这次执行之后我应该再次对数据进行分组?
我怎样才能做到这一点?
是否可以继续对这个查询进行分组,或者应该有另一个会再次分组?
谢谢
干杯
【问题讨论】: