多个不同 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'
我的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'