即使使用 bigint,测量总和仍然返回负数

Measure still returning negative in sum even with bigint

我在浏览多维数据集时注意到我们有一个度量 Periodsum 上返回负值。在 SSMS 中,我将列更改为 bigint,刷新了 SSDT DSV,它识别出了更改。

我处理了立方体并注意到我仍然得到一组的负值。 我检查了 DSV 中的列,它说 System.Int64 (not bigint):

.

另一方面,如果我检查 DSV XML,数据类型设置为 xs:long(不是 bigintSystem.Int64):

<xs:element name="period" msprop:DbColumnName="period" msprop:FriendlyName="period" type="xs:long" minOccurs="0" />.

奇怪的是,这种情况只发生在一个特别高的指标上。其中两个度量是 10 位数字(佛罗里达和加利福尼亚),分别为 1001769300 和 3296682000,但加利福尼亚在立方体中被转换为负数。

两个问题:

  1. 如果我在数据库中将 FactTable.Period 设置为 bigint,为什么 SSDT 在 DSV GUI 中将其设置为 System.Int64 而在 [=47= 中将其设置为 xs:long ] DSV?
  2. 我该如何解决这个问题?

问题是实际的 Measure 未更新,即使它已在 DSV 中更新:

我将其更改为 bigint,问题已解决。

我仍然不确定为什么 DSV、XML DSV、立方体度量和实际 SQL table 都显示不同的 datatypes