1

例如,假设一个表“值”包含 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?

4

3 回答 3

1

尝试这样的事情

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

得到你的最终价值,对不起,如果这甚至不接近你想要的,但这就是我从你的解释中得到的

于 2017-03-05T04:53:47.147 回答
0

你可以这样做:
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;

认为它会有所帮助。

于 2013-01-16T10:31:31.197 回答
0

你可以简单地在控制器中这样写:

def sumList = Values.executeQuery("SELECT (B+C+D) AS sum FROM Values WHERE A=10") println(sumList)

参考链接: http: //grails.asia/grails-hql-count-examples

于 2017-03-05T19:19:33.977 回答