今天,我使用chartJS制作了一些图表。图表工作正常,但是有些遗漏。我有3个月的数据,一个月可能有一些数据为null(计数)。也许那是我的数据
Month Data1 | Month Data2 | Month Data3
1 2 | 1 0 | 1 2
2 4 | 2 2 | 2 2
3 1 | 3 1 | 3 0
edit
我桌子上的数据
Month Data1 Status | Month Data2 Status | Month Data3 status
1 2 all | 1 0 1 | 1 2 2
2 4 all | 2 2 1 | 2 2 2
3 1 all | 3 1 1 | 3 0 2
我从该查询中分组所获得的月份
var SelectQuery = _Context.MyTable
.Where(a => a.Date.Value.Year == DateTime.Now.Year)
**.GroupBy(a => a.Date.Value.Month)**
.Select(b => new
{
Date = b.Key,
Count = b.Count()
});
结束编辑
我首先从db中选择日期,然后使用distinc将其设为月份第二步,我选择“数据”并使用过滤条件。这样的选择查询。
var SelectQuery = _Context.MyTable
.Where(a => a.Date.Value.Year == DateTime.Now.Year)
.GroupBy(a => a.Date.Value.Month)
.Select(b => new
{
Date = b.Key,
Count = b.Count()
});
并且要制作数组数据,我选择SelectQuery variabel并像这样计算该数据
var MyCountSelect = SelectQuery.Select(a => a.Count).ToArray();
然后我像这样使用JSON返回数据
return new JsonResult(new { myDate = date, myCount = MyCountSelect});
edit
我从该查询中获得的日期
var date = _Context.MyTable.Where(a=>a.Date.Value.Year == DateTime.Now.Year).Select(a => a.Date.Value.Month).Distinct().DefaultIfEmpty().ToList();
编辑结束
此外,我也有3个上述选择查询来创建数组。
并且当我看到json返回时,数据将像这样
Month | Data1 | Data2 | Data3
1 | 2 | 2 | 2
2 | 4 | 1 | 2
3 | 1 | |
我的问题,如何使数组类似
Month | Data1 | Data2 | Data3
1 | 2 | 0 | 2
2 | 4 | 2 | 2
3 | 1 | 1 | 0
谢谢
使月变化率第一
var months = Enumerable.Range(1, 12);
更改此代码
var SelectQuery = _Context.MyTable
.Where(a => a.Date.Value.Year == DateTime.Now.Year)
.GroupBy(a => a.Date.Value.Month)
.Select(b => new
{
Date = b.Key,
Count = b.Count()
});
输入此代码
var SelectQuery = (from p in _Context.MyTable
where p.Date.Value.Year == DateTime.Now.Year
group p by new { p.Date.Value.Month } into g
select new { g.Key.Month, Count = g.Count() }).ToArray();
并最终更改此代码
var MyCountSelect = SelectQuery.Select(a => a.Count).ToArray();
输入此代码
string[] MyCountSelect = (from month in months
from p in SelectQuery.Where(x => month == x.Month).DefaultIfEmpty()
select p == null ? "0" : p.Count.ToString()).ToArray();
并且结果为空时,数组可以给出0值