2

我有以下查询,我想按月份而不是完整日期对结果进行分组。有什么简单的方法可以实现吗?注意到我正在使用 SqlKata 库

预期结果

Month | Balance
------|--------
1     | 100
2     | 150
3     | 300

代替

Date       | Balance
--------   |------
2018-01-01 | 100
2018-01-02 | 90
.....      | ....
2018-02-01 | 150

我目前的代码是:

var balances = db.Query("Balances")
    .WhereBetween("Date", from, to)
    .Select("Date")
    .Select("sum([Balance]) as Balance")
    .GroupBy("Date")
    .Get();
4

2 回答 2

2

您有GroupByRaw ( 和SelectRaw) 只需使用内置函数的数据库来获取月份。假设您正在使用 SQL Server 和MONTH函数:

var balances = db.Query("Balances")
    .WhereBetween("Date", from, to)
    .SelectRaw("MONTH(Date)")
    .Select("sum([Balance]) as Balance")
    .GroupByRaw("MONTH(Date)")
    .Get();

免责声明:检查您的数据库品牌文档中的日期函数,以了解如何在您的情况下从日期获取月份。

于 2018-04-27T10:47:00.310 回答
-1

只需这样做:

select month(`Date`);

于 2018-04-27T10:46:26.623 回答