Grails 查询以逐日或逐月获取数据等?圣杯

Grails 查询以逐日或逐月获取数据等?圣杯,grails,gorm,Grails,Gorm,我想在我的grails应用程序中绘制一些图表,但在此之前,我必须从数据库中获取数据以提供图表,但我仍然无法找出如何使用正确的方法获取所需的数据 我有一个开始日期和一个结束日期来限制期限,我想按天或周、月、年等获取数据 我想用步长等于一天/周/月/年的步长从开始日期循环到结束日期 你认为这是正确的方法吗?如果是如何在groovy中编写,如果不是,请说明如何以正确的方式编写 谢谢在这种情况下,我喜欢在查询本身中对结果进行分组和求和,就像在普通sql中使用sum()和groupby子句一样。Grail

我想在我的grails应用程序中绘制一些图表,但在此之前,我必须从数据库中获取数据以提供图表,但我仍然无法找出如何使用正确的方法获取所需的数据

我有一个开始日期和一个结束日期来限制期限,我想按天或周、月、年等获取数据

我想用步长等于一天/周/月/年的步长从开始日期循环到结束日期

你认为这是正确的方法吗?如果是如何在groovy中编写,如果不是,请说明如何以正确的方式编写


谢谢

在这种情况下,我喜欢在查询本身中对结果进行分组和求和,就像在普通sql中使用sum()和groupby子句一样。Grails基于Hibernate,Hibernate是一种非常适合这些情况的语法

下面是Grails中按月选择财务总计(如财务交易)的示例:

我认为这是一个非常简单和直截了当的解决方案。
关于…

从数据库检索数据grails提供了不同的方法,例如,查看文档中的动态查找器、createCriteria、executeQuery,看看哪种方法更适合您的需要。我相信如果你在这里有一些代码,人们会给你更多的帮助。
def query = """
  select new map(sum(tx.value) as total, month(tx.date) as month, year(tx.date) as year)
    from Transaction tx
   where tx.date >= :beginDate and tx.date < :endDate
   group by month(tx.date), year(tx.date)
   order by year(tx.date) desc , month(tx.date) desc
"""
def result = Transaction.executeQuery(query,[beginDate:someDate, endDate:anotherDate])
result.each{ item ->
    println "Financial total for ${item.month}/${item.year} is equal to ${item.total}"
}