我一直试图获得一个结果。但我得到了多个回报。 请注意,对于应用程序中的更正,我需要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行作为结果,空白,完全错误的数字,或根本没有结果。
知道如何挑出我需要的结果吗?