【问题标题】:Measure still returning negative in sum even with bigint即使使用 bigint,测量值仍然返回负数
【发布时间】:2022-01-15 00:48:57
【问题描述】:

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

我处理了多维数据集并注意到我仍然得到一组负值。 我检查了 DSV 中的列,上面写着 System.Int64(不是 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 而在 XML DSV 中将其设置为 xs:long
  2. 如何解决此问题?

【问题讨论】:

  • A BIGINT 是一个 64 位有符号整数,因此可能是负数
  • bigint 的限制为 2^63-1。 3296682000 的总数较小。

标签: tsql ssas sql-server-data-tools


【解决方案1】:

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

我把它改成了bigint,问题就解决了。

我仍然不确定为什么 DSV、XML DSV、多维数据集度量和实际 SQL 表都显示不同的datatypes

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-14
    • 2019-04-22
    • 2020-10-02
    • 2012-03-31
    • 1970-01-01
    • 2019-10-04
    相关资源
    最近更新 更多