複数の算術演算を使用した情報の扱いについて #1002
Unanswered
grass-field
asked this question in
Q&A
Replies: 1 comment 3 replies
-
これはバグですね。 |
Beta Was this translation helpful? Give feedback.
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
いつも大変お世話になっております。
Criteria API を使用した SQL の構築時、
グループ単位で集約した結果を、算術演算(Expressions.div、Expression.mod等の記述)を使って更にデータ加工を行うため、
以下のようなSQLを構築してみたところ、算術演算の結果(divColumn, modColumn, mulColumn, subColumn)が
想定した結果ではなく、全て同じ値(subColumnの値)となっていました。
今回のように一度に複数の算術演算を使用することはできないのでしょうか?
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
SampleTable_ e = new SampleTable_();
PropertyMetamodel sumColumn = Expressions.sum(e.money);
PropertyMetamodel divColumn = Expressions.div(Expressions.sum(e.money),10000L);
PropertyMetamodel modColumn = Expressions.mod(Expressions.sum(e.money),10000L);
PropertyMetamodel mulColumn = Expressions.sub(Expressions.mul(e.money),10000L);
PropertyMetamodel subColumn = Expressions.sub(Expressions.sum(e.money),10000L);
List list = nativesql
.from(e)
.groupBy(e.ColumnX)
.selectAsRow(ColumnX, sumColumn, divColumn, modColumn, mulColumn, subColumn)
.fetch();
for( Row row : records)
{
System.out.println("sum =[" + row.get(sumColumn) + "]");
System.out.println("div =[" + row.get(divColumn) + "]");
System.out.println("mod =[" + row.get(modColumn) + "]");
System.out.println("mul =[" + row.get(mulColumn) + "]");
System.out.println("sub =[" + row.get(subColumn) + "]");
}
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Listの各値を確認したところ、下記の結果となってました。
【出力内容】
sum = [123456]
div = [113456]
mod = [113456]
mul = [113456]
sub = [113456]
お忙しいところ大変恐縮ですが、実現方法や対応策等ご教示頂けますと幸いです。
Beta Was this translation helpful? Give feedback.
All reactions