即使使用 bigint,测量总和仍然返回负数
Measure still returning negative in sum even with bigint
我在浏览多维数据集时注意到我们有一个度量 Period
在 sum
上返回负值。在 SSMS 中,我将列更改为 bigint
,刷新了 SSDT DSV
,它识别出了更改。
我处理了立方体并注意到我仍然得到一组的负值。
我检查了 DSV 中的列,它说 System.Int64
(not bigint):
.
另一方面,如果我检查 DSV XML,数据类型设置为 xs:long
(不是 bigint
或 System.Int64
):
<xs:element name="period" msprop:DbColumnName="period" msprop:FriendlyName="period" type="xs:long" minOccurs="0" />
.
奇怪的是,这种情况只发生在一个特别高的指标上。其中两个度量是 10 位数字(佛罗里达和加利福尼亚),分别为 1001769300 和 3296682000,但加利福尼亚在立方体中被转换为负数。
两个问题:
- 如果我在数据库中将
FactTable.Period
设置为 bigint
,为什么 SSDT 在 DSV GUI 中将其设置为 System.Int64
而在 [=47= 中将其设置为 xs:long
] DSV?
- 我该如何解决这个问题?
问题是实际的 Measure 未更新,即使它已在 DSV 中更新:
我将其更改为 bigint
,问题已解决。
我仍然不确定为什么 DSV、XML DSV、立方体度量和实际 SQL table 都显示不同的 datatypes
。
我在浏览多维数据集时注意到我们有一个度量 Period
在 sum
上返回负值。在 SSMS 中,我将列更改为 bigint
,刷新了 SSDT DSV
,它识别出了更改。
我处理了立方体并注意到我仍然得到一组的负值。
我检查了 DSV 中的列,它说 System.Int64
(not bigint):
另一方面,如果我检查 DSV XML,数据类型设置为 xs:long
(不是 bigint
或 System.Int64
):
<xs:element name="period" msprop:DbColumnName="period" msprop:FriendlyName="period" type="xs:long" minOccurs="0" />
.
奇怪的是,这种情况只发生在一个特别高的指标上。其中两个度量是 10 位数字(佛罗里达和加利福尼亚),分别为 1001769300 和 3296682000,但加利福尼亚在立方体中被转换为负数。
两个问题:
- 如果我在数据库中将
FactTable.Period
设置为bigint
,为什么 SSDT 在 DSV GUI 中将其设置为System.Int64
而在 [=47= 中将其设置为xs:long
] DSV? - 我该如何解决这个问题?
问题是实际的 Measure 未更新,即使它已在 DSV 中更新:
我将其更改为 bigint
,问题已解决。
我仍然不确定为什么 DSV、XML DSV、立方体度量和实际 SQL table 都显示不同的 datatypes
。