我喜歡在這種情況下,做的是組和總結在查詢本身的結果,只是就像你會在純sql中使用sum()和group by子句一樣。 Grails基於Hibernate,而Hibernate則作爲這種情況非常適用的select new map()語法。
這裏是Grails的一個例子按月選擇金融總量(如金融交易):
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
可變環,並獲得每個結果項目這是地圖。像這樣:
result.each{ item ->
println "Financial total for ${item.month}/${item.year} is equal to ${item.total}"
}
我認爲這是非常簡單的,並以點解決方案。 Regards ...
從數據庫grails檢索數據提供了不同的方法,例如,查看文檔中的動態查找器,createCriteria,executeQuery,並查看哪一個更適合您的需要。如果你在這裏有某種代碼,我相信人們會幫助你。 – Alidad 2013-04-11 11:07:08