获取计算具有相同列的列的值

时间:2017-05-17 09:56:20

标签: sql postgresql pgadmin

我一直试图获得一个结果。但我得到了多个回报。 请注意,对于应用程序中的更正,我需要OrgId知道必须在视觉上更正哪一行。不改变原始行。所以我试着在查询字段中计算新值。

想要的结果是当我从表中询问记录1时,我得到-1的真值 但结果如下。我不能使用2个结果,因为它会给我一个错误:“由于子查询而返回了多行”

我的桌子:桌子

Id |Amount|OrgId|
---|------|-----|
1  |10    |     |
2  |-8    |1    |
3  |-2    |1    |
4  |-1    |1    |
5  |2     |     |

至于我的查询:

select
  case
    when not tableb.OrgId is null and exists(select 1 from table where OrgId = X then
      (select tablea.amount + sum(tableb.amount))
    else
      (select tablea.amount)
    end as trueamount
from table as tablea, table as tableb
where tablea.id = X
group by tableb.OrgId, tablea.amount

X引用任何使用的整数

当X = 1时,结果为:

trueamount
----
-1
10

当X = 5时,结果为

trueamount
----
2
2

我已尝试以各种方式更改查询,但我要么得到2行作为结果,空白,完全错误的数字,或根本没有结果。

知道如何挑出我需要的结果吗?

0 个答案:

没有答案