Группировать по названию месяца в sql используя SqlKata - PullRequest
0 голосов
/ 27 апреля 2018

У меня следующий запрос, и я хочу сгруппировать результат по месяцу вместо полной даты. Есть ли простой способ добиться этого? отмечая, что я использую библиотеку 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();

Ответы [ 2 ]

0 голосов
/ 27 апреля 2018

У вас есть GroupByRaw SelectRaw) Просто используйте встроенную функцию базы данных, чтобы получить месяц. Предположим, вы работаете с SQL Server и функцией МЕСЯЦ :

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

Отказ от ответственности: проверьте документы базы данных на наличие функций даты, чтобы узнать, как получить месяц от даты в вашем случае.

0 голосов
/ 27 апреля 2018

Просто сделайте это:

select month(`Date`);

...