简单的AdwWorks多维数据集具有从2000年到2007年的年份范围。事实数据存在于2001 - 2006年。 2000年和2007年都是空的。好。
我将新数据插入到2001年的源事实表中并处理多维数据集。所有更改都会立即反映出度量值(它会增长)。但是,2000年的新数据并没有反映出衡量价值的增长。然而,在多维数据集处理期间,SSAS会看到两种情况的新行(行数增加的值),而sql profiler会捕获2001年和2000年的相同批次的命令。但衡量价值仅在2001年才会增长。
我已经清除了mdx-script - 它现在只包含calculate命令。现在有:
a)源数据库中事实表的选择总和(度量值)反映两种情况的新行
b)立方体处理看到两种情况的变化
c)mdx-script是明确的(没有范围,可以将度量值设置为null)
d)在立方体上选择[销售额]仅反映2001年的这一变化,而不是2000年的
有什么建议吗?
=============================================== =
一天后.. :))
问题似乎已经解决,但是......我不知道:它是技术和/或逻辑功能还是错误..
那么,发生了什么..简单的mdx查询:
select [sales amount] on 0,
[some date from 2000] on 1
from [cube]
给[销售额]的空值,但对于[2001年的某个日期],值不为空。在数据库事实表中,两个值(两个日期的sum(salesamount)的结果)都不为空。经过研究后,我发现[销售额]度量组中有一个度量([Temp]),MeasureExpression设置为[销售额] * [平均费率]([平均费率] - 从[实际货币汇率]计算测量组)。 [Fact Currency Rate]度量组的事实表不包含2000年的数据。我插入它 - vualya - 所有的工作和现在的2000年。 主要问题是:为什么ssas计算MeasureExpression公式用于度量,我在查询中没有请求,以及为什么我请求的ssas值为null,如果它不依赖于未请求度量的MeasureExpression属性的公式? 它是虫子还是“傻瓜防守”?还有另一个这种奇怪的ssas行为的样本。我的意思是使用UnaryOperatorColumn属性。如果为任何维度的任何属性设置,则它会影响每个查询,即使此属性不是此查询的一部分。例如
select [sales amount] on 0
from [cube]
返回不同的结果,这取决于为某些维度属性设置的UnaryOperatorColumn。 这是什么意思?