我的数据库中包含一些我需要计算积分和奖励的交易的下表。 每当发生TxType A
时,我应该记录10分。 然后,我必须从这些点中减去PP
列的值,每次出现TxType B
时。 当计算结果为零时,就会获得奖励。SQL查询计数(递归)
ID TxType PP
1 A 0
2 B 2
3 B 1
4 B 1
5 B 1
6 B 3
7 B 1
8 B 1
9 A 0
10 B 4
11 B 3
12 B 2
13 B 1
14 A 0
15 B 2
我已创建SQL查询以calc下点作为遵循
SELECT SUM(
CASE
WHEN TxType = 'A' THEN 10
WHEN TxType = 'B' THEN (PP * -1)
END)
FROM myTable
该查询返回的8值,而这正是基于样本数据点的数量。 如何计算发生的奖励(在给定示例中为2)?
感谢您使用相关子查询帮助做计算(在SQL Server 2008)
可惜这是2008年 – dean
你能否澄清*“该查询返回值为8,这正好是基于样本数据的点数如何计算发生的奖励(在给定示例中为2)?“*查询返回整个数据集。所以很难说出你在说什么。 – Khan
@Khan:对不起,但我的查询只是返回一个值,而不是整个数据集。你错过了SUM功能吗?结果8来自30(每个类型A tx的值)小于22(tx类型B时的PP总和) – Lorenzo