学说值取决于帐户来源

时间:2015-09-02 11:54:20

标签: php postgresql orm doctrine-orm relational-database

我目前站在一个我不太了解如何在学说中解决的问题面前。

这是我目前的查询:

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 ...

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

1 个答案:

答案 0 :(得分:1)

不会这样做:

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,使其为负数