例如,假设一个表“值”包含 4 列 A、B、C 和 D。现在,我想添加 B、C、D,其中 A = 10。
对于单列,它是这样的:
def c=values.createCriteria{
eq("A",10)
projections{
sum("B")
}
}
如何在 A=10 的地方添加 B、C 和 D?
尝试这样的事情
def c=values.createCriteria().get{
eq("A",10)
projections{
sum("B","b")
sum("C","c")
sum("D","d")
}
resultTransformer(AliasToEntityMapResultTransformer.INSTANCE)
}
然后你可以构建一个地图或列表 [sumB:cb,sumbC:cc,sumD:cd] 类似的东西或
def bcd=c.b+c.c+c.d
得到你的最终价值,对不起,如果这甚至不接近你想要的,但这就是我从你的解释中得到的
你可以这样做:
SELECT B,C,D,(B+C+D) AS sum FROM values WHERE A=10;
或
SELECT (B+C+D) AS sum FROM values WHERE A=10;
认为它会有所帮助。
你可以简单地在控制器中这样写:
def sumList = Values.executeQuery("SELECT (B+C+D) AS sum FROM Values WHERE A=10")
println(sumList)
参考链接: http: //grails.asia/grails-hql-count-examples