我创建了2个表。一个表有4个字段。一个独特的名字,一个日期和3个数字。第二个表包含相同的字段,但记录合并函数的输出。因此有一个更新或插入功能发生的日期。我想要做的是检索2天之间的差异或者2天的总数之和,以计算当天价值变化的数额。合并函数仅在值已更改或需要插入新值时才会更新。
到目前为止,我有这个select sum(Change_Table_1.Disk_Space) as total,
Change_Table_1.Date_Updated
from VM_Info
left join Change_Table_1
on VM_Info.VM_Unique = Change_Table_1.VM_Unique
where VM_Info.Agency = 'test'
group by Change_Table_1.Date_Updated
但这只会返回当天更新总数的总和,而不是两天之间的差异。这个问题的一个答案是将所有新记录添加到表中,但这将包含许多重复项。因此,在我的脑海中,我想要它做的是循环当天的当前数字,然后在第二天循环,但也包括所有未更新的值。对不起,如果我没有解释清楚。所以我想要实现的是随着时间的推移对总数进行某种改变。如果其糟糕的设计我也无法接受它。
非常感谢任何帮助。
也许这会更好地解释它。显示第1天的总计,如果值未更改,则显示第2天的相同值(如果已更改显示新值)。等等...
可以进一步详细说明。
Change_Table看起来像
vm date created action value_Field1 value_field_2 Disk_Space
abc 14/10/2013 insert 5 5 30
def 14/10/2013 insert 5 5 75
abc 15/10/2013 update 5 5 75
所以我想要的输出是第14位,最后一列的总数是105.在15日abc从30变为75但def没有改变但仍然需要包括给150
所以输出看起来像
date disk_Space
14/10/2013 105
15/10/2013 150
答案 0 :(得分:0)
这有帮助吗?如果没有,您能提供几行样本数据,以及所需结果的示例吗?
select
(VM_Info.Disk_Space - Change_Table_1.Disk_Space) as DiskSpaceChange,
Change_Table_1.Date_Updated
from
VM_Info
left join Change_Table_1 on VM_Info.VM_Unique = Change_Table_1.VM_Unique and VM_Info.Date = Change_Table_1.Date_Updated
where
VM_Info.Agency = 'test'