多个不同 ID 的求和计算问题

Issue with Sum Calculation for multiple different IDs

我的SQL代码如下所示。我遇到的问题是计算每个数字值的总和。单独执行它们是可以的,并且在代码中指定数字时有效,但在未指定数字时无效,我希望总和计算适用于所有单独的数字。

{ 看起来计算税点的价值。因此,忽略纳税日期之前的所有值,并从总单位中减去纳税日期之后发生的所有单位条目。税收单位也被减去。每只基金的税点总单位乘以税点价格。将资金的价值相加,得出该数字的总价值。 }

这是我完成的代码:

SELECT DISTINCT 

A.Number,

CAST(ROUND((SELECT SUM(Val)
FROM (SELECT((S.TotalUnits -  
 (SELECT SUM(Units) 
FROM TableIH AS F WHERE F.Fund = S.Fund AND F.Number = S.Number 
AND F.Date >= (SELECT MIN(Date) FROM TableIH AS D 
            WHERE D.Fund= F.Fund AND D.Number = F.Number AND D.Entry = 'Tax'     )
  )
        ) * T.Price
  ) AS Val

FROM TableIH T
 INNER JOIN TableID S
 ON T.Number = S.Number

 WHERE S.TotalUnits > 0 AND T.Fund = S.Fund
         AND T.Price = ANY (SELECT (Price) 
    FROM TableIH AS E WHERE E.Entry = 'Tax' AND E.Number = T.Number)
   )t
   )
  ,2) 
 AS DECIMAL (25,2)) AS "Value"


 FROM
TableIH A
INNER JOIN TableID C
ON C.Number = A.Number 


 group by A.Number

表格是:

表IH:

数量 基金 入场 单位 价格 日期

12 YY RE 6 0.2 2015-02-02

12 YY 税 -10 0.1 2015-01-13

13 XX RE 6 0.2 2015-02-12

13 XX 税收 -20 0.05 2014-12-11

13 MM 税 -25 0.6 2014-12-10

13 MM RE 8 0.2 2013-11-02

表格ID

数量 基金 总单位

12 YY 2000

13 XX 1500

13 MM 500

期望的结果:

数量 价值

12 [ ((2000) - (6) - (-10)) * 0.1 ] = 200.4

13 [ ((1500) - (6) - (-20)) * 0.05 ] + [ ((500) - (-25)) * 0.6 ] = 390.7

但得到:- 结果是对所有数字求和而不是将其除以每个数字。

数量 价值

12 [ (200.4 + 390.7] = 591.1

13 [ (200.4 + 390.7] = 591.1

如有任何错误帮助,我们将不胜感激

晚上好,问题出在你的第三个嵌套子查询中,你的总和没有分组,所以它是对所有单位求和,所以你只会得到一个总数:

SELECT SUM(Units) 
FROM TableIH AS F WHERE F.Fund = S.Fund AND F.Number = S.Number 
AND F.Date >= (SELECT MIN(Date) FROM TableIH AS D 
        WHERE D.Fund= F.Fund AND D.Number = F.Number AND D.Entry = 'Tax'