所以看起来该字段中的第一项正在用于确定类型。
您可以通过运行以下命令来确认是否确实如此,如果两者现在都是 double 类型,那么是的,顶部的空单元格会创建对象类型:
select
NON EMPTY
Hierarchize(
Crossjoin(
{[Measures].[engagement]},
Union(
Union(
Union(
Union(
Crossjoin(
{[structure].[All structures]},
{[temps].[2016]}
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2015]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2014]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2013]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2012]}
)
)
)
) ON COLUMNS,
NON EMPTY
{
//[soa].[00-01-0-030-00000], //<<commented out
[soa].[00-01-0-100-00000],
[soa].[00-01-0-120-00000],
[soa].[00-01-0-680-00000],
[soa].[00-01-0-710-00000],
[soa].[00-01-0-720-00000],
[soa].[00-01-0-730-00000]} ON ROWS
from [cubExecution];
空白空间通常是您在多维数据集中的朋友和查询,因为它可以使事情快速执行,因此将空白强制为零并不是真正的好习惯,但您可以将空白更改为零 - 但您现在会看到很多列单元格以前不存在 - 但您的打字问题可能会得到解决?
WITH
[Measures].[engagementX] AS
CoalesceEmpty([Measures].[engagement],0)
SELECT
NON EMPTY
Hierarchize(
Crossjoin(
{[Measures].[engagementX]},
Union(
Union(
Union(
Union(
Crossjoin(
{[structure].[All structures]},
{[temps].[2016]}
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2015]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2014]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2013]}
)
),
Crossjoin(
{[structure].[All structures]},
{[temps].[2012]}
)
)
)
) ON COLUMNS,
NON EMPTY
{
[soa].[00-01-0-030-00000],
[soa].[00-01-0-100-00000],
[soa].[00-01-0-120-00000],
[soa].[00-01-0-680-00000],
[soa].[00-01-0-710-00000],
[soa].[00-01-0-720-00000],
[soa].[00-01-0-730-00000]} ON ROWS
from [cubExecution];