当前位置: 首页 > 知识库问答 >
问题:

Spring JPA查询-替换结果集中的负值

闾丘树
2023-03-14
/**
  * SELECT sku, SUM(real_allocation - logical_allocation)
  * FROM stock
  * WHERE warehouse_brand = '?'
  * GROUP BY (warehouse_brand, sku);
  */

@Query(value = "SELECT new it.reply.retail.oms.common.api.inventory.CumulativeInventoryItem " +
               "(s.pk.sku, SUM(s.realAllocation - s.logicalAllocation)) " +
               "FROM Stock s WHERE s.pk.whsCode IN :warehouses GROUP BY (s.pk.sku)")
Page<CumulativeInventoryItem> getCumulativeInventory(List<String> warehouses, Pageable pageable);
public class CumulativeInventoryItem {

    private String sku;
    private Long cumulativeQty;

}

我获得的结果集有时包含cumulativeqty属性的负值,需要将其替换为0。

是否可以使用ad-hoc查询替换这些值,或者我需要在从我的JPA方法获得结果集后替换它们?

共有1个答案

陆飞龙
2023-03-14

据此:https://en.wikibooks.org/wiki/java_persistence/jpql_bnf#new_in_jpa_2.0

CASE WHEN THEN ELSE组合可以在那里使用。

阿美,你能试试吗

SUM(CASE WHEN (s.realAllocation - s.logicalAllocation < 0) THEN 0 ELSE (s.realAllocation - s.logicalAllocation)))
SUM(s.realAllocation - s.logicalAllocation)
 类似资料:
  • 问题内容: 我有一个查询。现在,此查询当然返回一个结果集,我想要的是查询此查询的结果集,例如,我只希望上述查询具有唯一的名称。我应该提一下,我知道我可以在Query1中使用,但这只是一个示例,我的实际情况有些不同,我想知道的是是否可以查询上一个查询的结果集。我正在使用SQL Server 2012。 问题答案: 您可以使用该子句

  • 我正在使用Sqlite-pcl从数据库中检索一些数据。当显示结果时,有一个作为整数(等级)返回的某个字段,代表奖杯等级。我想用取决于值的字符串值替换该字段,例如,如果值为0,我想要结果为“铂金”,如果值为1,则值应为“银”。当然,数据库中没有这样的表来保存这些等级的描述,因此我不能使用联接

  • 问题内容: 无论如何,SQL Server中是否可以确定结果集中Mgmt Studio的查询中查询返回的数据的MEGS大小? 问题答案: 您可以打开客户端统计信息(“查询”菜单,“包括客户端统计信息”),该统计信息提供了执行查询时从服务器返回的字节数。

  • 获取查询对象的结果集 // 查询邮箱或密码是否正确 async checkEmailAndPassword(loginData) { // 解构查询对象中的结果 const { dataValues: {id,username,password,email} } = await this.ctx.model.User.findOne({

  • 问题内容: 我有一个团队时间表表,如下所示: 谢德勒 我想用另一个表中存在的相应团队替换团队值: DBO团队 尝试执行此操作:如何在查询结果中用“ The Monsters”和“ Bug Bites”替换Schedule中的1和2? 问题答案: 基本上只是做两个连接,一个连接为家乡名称,一个连接为客场名称。 我添加了反引号,因为schedule是一个关键字,所以为了不弄乱任何内容,您应该在表名上使

  • 问题内容: 我有一个数据库,正在运行以下查询: 上面的查询一次返回两个结果集,我不能分别触发两个查询。如何在Java类中一次处理两个结果集? 问题答案: 正确的代码来处理JDBC语句返回的多个: 重要位: 并返回以表明语句的结果只是一个数字,而不是一个。 您需要检查以了解是否还有更多结果。 确保关闭结果集或使用