根据帐户来源的学说值总和
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 使其成为负数
我现在站在一个问题面前,我真的不知道如何在学说上解决。
这是我当前的查询:
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 使其成为负数