如何在某些单元格上使用自定义 *** 作的CriteriaQuery SUM?

如何在某些单元格上使用自定义 *** 作的CriteriaQuery SUM?,第1张

如何在某些单元格上使用自定义 *** 作的CriteriaQuery SUM?

CriteriaBuilder
接口提供以下算术功能:

  • 加成
    sum(a, b)
  • 减法:
    diff(a, b)
  • 乘法:
    prod(a, b)
  • 师:
    quot(a, b)

其中

a
b
参数可以是一个表达和/或文字。

至于查询,以下是以易于阅读的形式编写的示例:

CriteriaBuilder cb = em.getCriteriaBuilder();CriteriaQuery<Number> q = cb.createQuery(Number.class);Root<T> t = q.from(T.class);// build SUM(A * (100.0 - B) / 100.0) expressionexpression<Double> diff = cb.diff(100.0, t.<Double>get("B"));expression<Double> prod = cb.prod(t.<Double>get("A"), diff);expression<Number> quot = cb.quot(prod, 100.0);expression<Number> sum = cb.sum(quot);q.select(sum.alias("D"));System.out.println(em.createQuery(q).getSingleResult());

您还可以将查询作为单行构建:

q.select(cb.sum(cb.quot(cb.prod(t.<Double>get("A"), cb.diff(100.0, t.<Double>get("B"))), 100.0)).alias("D"));

我希望它可以澄清您的疑问。



欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5104975.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-16
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存