我正在研究一个有两个不同表格的数据库 第一个包含数据库中的每个更改,如事务表。它包含购买/出售的对象,购买/出售的对象数量,此次发生的时间以及在哪个地方。 第二个表包含那些位置应该可用的每个对象的总值。
现在这是我的问题:
我想自动将每个条目与表1中的相同对象和位置相加,并将此值保存在表2中
但
有时在表1中有特殊的声明,不应该与其他值相加。他们应该覆盖这个价值。
我有一个例子说明这个总结应该如何:
n = normal value, s = special value
n: 1 sum: 1
n: 2 sum: 3
s: 7 sum: 7
n: 5 sum: 12
n: 4 sum: 16
n: 7 sum: 23
s: 20 sum: 20
为了帮助你,我还有一些额外的信息:
表1中有4列
第一个名为object,包含此条目生效的对象编号。
第二列包含该对象的数量。无论是买还是卖。
第三栏告诉我该交易属于哪个地点。这也意味着每个对象的数量都不同,具体取决于位置。
第四列包含此交易发生的原因。它告诉我这笔交易是否发生,因为我买了东西,或者因为我卖了东西,因为我算了我的股票 这是一个特殊的指示器,它应该告诉我的数据库不要总结这个值,而是用这个覆盖前一个。
第五列和最后一列包含此交易发生的日期。这非常重要,因为整个表按日期排序。它告诉我们这些特殊价值何时到位。
另一个表只包含每个位置中每个对象的总计值。
答案 0 :(得分:0)
以下内容将返回特定对象' MyObj'的每条记录的总和。从特殊'特殊'的最后一个实例开始入境(包括)。
(未测试的)
SELECT Sum(a.Amount) AS TheSum
FROM tblMyTable a
WHERE ID_PK> = nz((
SELECT max(ID_PK)
FROM tblMyTable
WHERE Object=a.Object AND IsSpecial=1
),0)
AND a.Object='MyObj'