根据帐户来源的学说值总和

doctrine sum of values depending on account source

我现在站在一个问题面前,我真的不知道如何在学说上解决。

这是我当前的查询:

SELECT SUM(t.amount) FROM AccountingBundle:Entity:Transaction t WHERE t.SourceAccount = ?1 or t.TargetAccount = ?1

虽然 TargetAccount 应该是正数,而 SourceAccount 应该是负数。 我真的不想做 2 个查询,因为这个原则和 PostgreSQL 更快。

我找到了一个可能的解决方案

CASE WHEN t.SourceAccount = ?1 THEN ... ELSE ...

但我还没有找到一种方法来告诉学说该值为负数。 任何人都可以告诉我如何实现这样的目标吗?

不会做:

SELECT
  SUM(CASE WHEN t.SourceAccount = ?1 THEN t.ammount * -1 ELSE t.ammount)
FROM
  AccountingBundle:Entity:Transaction t
WHERE
  t.SourceAccount = ?1 or t.TargetAccount = ?1

解决了你的问题?

编辑:这里的技巧是将数量乘以 -1 使其成为负数