[英]Grails: sum of field within criteria builder
在控制器中創建標准后,我不知道如何創建特定字段的運行總和
我正在使用以下方法創建一組記錄:
def b = Tapes.createCriteria()
def yesterday = b.list(sort: 'migratedDate', order: 'asc') {
between ("migratedDate", dat.minus(1), dat)
}
並計算該組中的項目數
def num2 = Tapes.countByMigratedDateBetween(dat.minus(1), dat)
我的域中的一個字段是“migratedDuration”,系統以毫秒為單位返回進程的運行時。 在控制器中有一種方法可以創建這個數字的總和嗎? 或者我應該通過相應的.gsp文件中的javascript來完成此操作嗎?
再次感謝,
一個可怕的糟糕黑客
這非常有效,謝謝
def todayTime = aa.list() {
between ("migratedDate", dat.minus(4), dat.minus(3))
projections { sum('migratedDuration')
}
}
您可以使用投影:
def b = Tapes.createCriteria()
def yesterday = b.list() {
projections {
sum('migratedDuration')
}
}
可以在此處找到可用的預測列表。
它真的是一個“運行總和”,即它是在每一行增加還是你需要所有行的總和?
可以使用Projection完成所有行的總和(讀取由CriteriaBuider提供的“projection”閉包的doco)。
如果它是一個運行總計,你需要在控制器中執行該操作,或者在循環結果列表中的行時查看自己。
干杯
背風處
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.