Grails:标准生成器内的字段总和

发布于 2024-09-25 21:45:55 字数 693 浏览 4 评论 0原文

在控制器中创建条件后,我不知道如何创建特定字段的运行总和

我当前正在使用以下方法创建一组记录:

    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)

并使用其中一个字段 在我的域中是“migeratedDuration”,系统返回进程的运行时间(以毫秒为单位)。控制器中有没有办法创建这个数字的总和?或者我应该通过相应的 .gsp 文件中的 javascript 来执行此操作?

再次感谢,

一个可怕的可怕的黑客

这完美地工作,谢谢

def todayTime = aa.list() { 
    between ("migratedDate", dat.minus(4), dat.minus(3)) 
    projections { sum('migratedDuration') 
    } 
}

I'm at a loss of how to create a running sum of particular field after creating a criteria within a controller

I'm currently creating a set of set of records using:

    def b = Tapes.createCriteria()
    def yesterday =  b.list(sort: 'migratedDate', order: 'asc') {
        between ("migratedDate", dat.minus(1), dat)
    }

and counting the number of items in that set with

def num2 = Tapes.countByMigratedDateBetween(dat.minus(1), dat)

one of the fields in my domain is "migratedDuration", the system is returning the runtime of the process in milliseconds. Is there a way in the controller to create a sum of this number? Or should I have to do this via javascript in the corresponding .gsp file?

Thanks Again,

an awful awful hack

This worked perfectly, thanks

def todayTime = aa.list() { 
    between ("migratedDate", dat.minus(4), dat.minus(3)) 
    projections { sum('migratedDuration') 
    } 
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我为君王 2024-10-02 21:45:55

您可以为此使用投影:

def b = Tapes.createCriteria()
def yesterday = b.list() {
    projections {
        sum('migratedDuration')
    }
}

可以找到可用投影的列表 这里

You can use a projection for this:

def b = Tapes.createCriteria()
def yesterday = b.list() {
    projections {
        sum('migratedDuration')
    }
}

A list of available Projections can be found here.

知足的幸福 2024-10-02 21:45:55

它真的是一个“运行总和”吗?即它是在每一行上递增还是您需要所有行的总和?

所有行的总和可以通过 Projection 来完成(阅读 CriteriaBuider 提供的“projections”闭包的 doco)。

如果是运行总计,则需要在控制器中执行此操作,或者在循环结果列表中的行时查看自己。

干杯

Is it truly a 'running sum' i.e. does it increment on each row or do you need the sum across all rows?

A sum across all rows can be done with a Projection (have a read of the doco for the "projections" closure provided by CriteriaBuider).

If it's a running total, you'll need to do that in the controller or view your self as you loop across the rows in the result list.

cheers

Lee

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文