簡體   English   中英

Grails:標准構建器中的字段總和

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM