我有一个带有日期属性的域类。
class Transaction {
LocalDate time
BigDecimal amount
}
如何按月分组查询所有交易的总和?我在GORM中找不到对日期范围进行分组的支持。
我有一个带有日期属性的域类。
class Transaction {
LocalDate time
BigDecimal amount
}
如何按月分组查询所有交易的总和?我在GORM中找不到对日期范围进行分组的支持。
在您的域类中添加一个基于公式的字段,用于截断日期:
class Transaction {
LocalTime time
BigDecimal amount
String timeMonth
static mapping = {
timeMonth formula: "FORMATDATETIME(time, 'yyyy-MM')" // h2 sql
//timeMonth formula: "DATE_FORMAT(time, '%Y-%m')" // mysql sql
}
}
那么你就可以运行像这样的查询:
Transaction.withCriteria {
projections {
sum('amount')
groupProperty('timeMonth')
}
}
timeMonth nullable: true
以避免验证错误。 - Césarweek
属性。为什么不提出一个新问题并包含您的代码呢? - ataylor
GROUP BY MONTH(time)
。 - aiolos