postgresql 如何在ASP.NET Core MVC上查询每月?

ruarlubt  于 2023-04-11  发布在  PostgreSQL
关注(0)|答案(1)|浏览(116)

我在ASP .NETCore中用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.苹果
1.三星
1.小米
销售
1.苹果- 02/2023
1.三星- 02/2023
1.苹果- 09/2022
1.小米- 12/2022
现在它返回(所有销售总额):

  1. 2(苹果)
  2. 1(三星)
  3. 1(厦门)
    我想把它做成每月一次:
02/2023 - 2
09/2022 - 1
12/2022 - 1

我正在使用控制台应用程序运行此代码

oxiaedzo

oxiaedzo1#

假设你有这些数据:

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" },
};

然后这些是通过IDMonth获得计数的查询:

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());

相关问题