如何查询每个月的ASP.. NET Core MVC?



我在ASP中编写查询。. NET Core使用PostgreSQL,我的目标是创建一个月销售报告,并将其存储在数据库中。

我的代码现在是查询所有的数据,我试图改变查询每月的数据。如何获取每月数据并将其保存到数据库?

Dictionary<long, int> countList = new();
foreach (var item in Repository.repoSales.GetAll().OrderBy(x => x.ID))
{
var ID = item.ID;
if (countList.ContainsKey(ID))
{
countList[ID]++;
}
else
{
countList[ID] = 1;
}
}
foreach (var entry in countList)
{
if (Repository.repoSales.Get(entry.Key).IsDeleted)
{
continue;
}
var Sales = Repository.repoSales.Get(entry.Key);
Sales.monthly = entry.Value;
Repository.repoSales.Update(project);
Console.WriteLine($"{entry.Key}: {entry.Value}");
}

样本数据:

公司

苹果
  1. 三星
  2. 小米

销售
  1. Apple - 02/2023
  2. Samsung - 02/2023
  3. 苹果公司- 2022年9月小米- 12/2022

现在它返回(所有销售总额):

  1. 2(苹果)
  2. 1(三星)
  3. 1 (Xiamoi)

我想按月计算:

02/2023 - 2
09/2022 - 1
12/2022 - 1

我使用控制台应用程序运行这段代码

那么,假设您有这些数据:

var data = new []
{
new { ID = "Apple", Month = "02/2023" },
new { ID = "Samsung", Month = "02/2023" },
new { ID = "Apple", Month = "09/2022" },
new { ID = "Xiaomi", Month = "12/2022" },
};

那么这些是获取ID计数和Month计数的查询:

Dictionary<string, int> ids =
data
.GroupBy(x => x.ID)
.ToDictionary(x => x.Key, x => x.Count());
Dictionary<string, int> monthly =
data
.GroupBy(x => x.Month)
.ToDictionary(x => x.Key, x => x.Count());

相关内容

  • 没有找到相关文章

最新更新