我有以下查询,我想按月份而不是完整日期对结果进行分组。
有没有简单的方法可以做到这一点?注意我正在使用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();

最佳答案

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


免责声明:检查数据库品牌文档中的日期功能,以了解如何从日期中获取月份。

关于c# - 使用SqlKata在sql中按月名称分组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/50060640/

10-13 06:21