【发布时间】:2022-01-15 00:48:57
【问题描述】:
我正在浏览多维数据集并注意到我们有一个度量 Period 在 sum 上返回负值。在 SSMS 中,我将列更改为bigint,刷新了SSDT DSV,它识别出更改。
我处理了多维数据集并注意到我仍然得到一组负值。
我检查了 DSV 中的列,上面写着 System.Int64(不是 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而在 XML DSV 中将其设置为xs:long? - 如何解决此问题?
【问题讨论】:
-
A
BIGINT是一个 64 位有符号整数,因此可能是负数 -
bigint的限制为 2^63-1。 3296682000 的总数较小。
标签: tsql ssas sql-server-data-tools