我觉得这很愚蠢 - 我可能忘记了数学规则。
我正在尝试根据净销售额,成本和折扣计算毛利。
根据我的计算方式,我得到两个不同的值:
(sum(netsales) - sum(cost)) + sum(billbackdollars) as CalculateOutsideSum,
sum((netsales - cost) + BillBackDollars) as CalculateWithinSum
这是基本的交易事实表。
在这个特定的例子中,有大约90个记录被总结,我得到以下结果
CalculateOutsideSum: 234.77
CalculateWithinSum: 247.70
我想象这将是某种传递属性,考虑到它的总和,两种结果都是一样的。
哪种方法正确?
答案 0 :(得分:1)
从数学的角度来看,你的公式应该得到完全相同的值。
无论如何,在这种情况下,最好在计算后执行求和。
打开响应后编辑:
使用 isnull 函数或其他提高数据精度的转换函数来处理数据。
在总和之后应该应用降低数据精度的舍入,格式化和转换。
答案 1 :(得分:0)
刚想出来......
问题是Net Sales为3行为空,导致计算变为空,并且错误地求和。添加一个isnull后,两个总和都是相同的。