Cell 元素 (MDDataSet) (XMLA)
包含父级 CellData 元素中包含的单个单元的相关信息。
语法
<CellData>
<Cell CellOrdinal="unsignedInt">
<!-- Zero or more cell property values -->
<!-- or -->
<Error>...</Error>
</Cell>
</CellData>
元素特征
特征 |
说明 |
---|---|
数据类型和长度 |
无 |
默认值 |
无 |
基数 |
0-n:可多次出现的可选元素。 |
属性
属性 |
说明 |
---|---|
CellOrdinal |
必需的 unsignedInt 属性。 多维数据集中单元的序号位置。 |
注释
在父级 root 元素中,Axes 元素后跟 CellData 元素(包含多维数据集中每个返回单元的属性值的 Cell 元素的集合)。 Cell 元素包含 CellOrdinal 属性(指示该单元在多维数据集中的序号位置,序号从零开始算起)和与该单元关联的每个单元属性值的一个元素。 Cell 元素中的每个单元属性值都由单独的 XML 元素定义。 单元属性的值为 XML 元素包含的数据,父级 root 元素的 CellInfo 元素中定义的单元属性的名称与 XML 元素的名称对应。
下列语法对单元属性值进行了说明:
<CellProperty xsi:type="string">value</CellProperty>
只可为 VALUE 单元属性指定单元属性值的数据类型。 其他单元属性的数据类型由包含在 CellInfo 元素中的单元属性定义确定。 如果已为单元属性指定了默认值(方法是将包含在 CellInfo 元素中的单元属性定义的 Default 元素包括在内),或尚未指定默认值且该单元属性的值为空值,则将不包含单元属性值元素。
单元属性错误
如果因为 MicrosoftSQL ServerAnalysis Services 实例中发生错误(例如可阻止向给定单元返回值的计算错误)而不能返回单元属性,则 Error 元素将替换相关单元属性的内容。 下面的 XML 示例介绍了一个单元属性错误:
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">
<Error>
<ErrorCode>2148497527</ErrorCode>
<Description>Unknown error</Description>
</Error>
</Value>
</Cell>
计算单元序号值
可以根据 CellOrdinal 属性值计算单元的轴引用。 从概念上说,单元在数据集中有编号,数据集就好像是一个 p 维数组,其中 p 为轴的数目。 单元按行优先的顺序排列。
假设某查询请求列中的四个度量值和行中两个州(包含四个地区)的交叉连接。 在下面的数据集结果中,显示为粗体的数据集结果部分的 CellOrdinal 属性为 {9, 10, 11, 13, 14, 15, 17, 18, 19}。 结果集之所以为这样,是因为单元是以行优先的顺序编号的,且左上角单元的 CellOrdinal 为 0。
State |
Quarter |
Unit sales |
Store cost |
Store sales |
Sales count |
---|---|---|---|---|---|
California |
Q1 |
16890 |
14431.09 |
36175.2 |
5498 |
|
Q2 |
18052 |
15332.02 |
38396.75 |
5915 |
|
Q3 |
18370 |
15672.83 |
39394.05 |
6014 |
|
Q4 |
21436 |
18094.5 |
45201.84 |
7015 |
Oregon |
Q1 |
19287 |
16081.07 |
40170.29 |
6184 |
|
Q2 |
15079 |
12678.96 |
31772.88 |
4799 |
|
Q3 |
16940 |
14273.78 |
35880.46 |
5432 |
|
Q4 |
16353 |
13738.68 |
34453.44 |
5196 |
Washington |
Q1 |
30114 |
25240.08 |
63282.86 |
9906 |
|
Q2 |
29479 |
24953.25 |
62496.64 |
9654 |
|
Q3 |
30538 |
25958.26 |
64997.38 |
10007 |
|
Q4 |
34235 |
29172.72 |
73016.34 |
11217 |
应用图中显示的公式,轴 k = 0 具有 Uk = 4 个成员,轴 k = 1 具有 Uk = 8 个元组。 P = 2 是该查询的轴的总数。 将单元 {California, Q3, Store Cost} 视为 S0,初始和为 i = 0 和 1。对于 i = 0,轴 0 上 {Store Cost} 的元组序号为 1。对于 i = 1,{CA, Q3} 的元组序号为 2。
当 i = 0,Ei = 1 时,对于 i = 0,总数为 1 * 1 = 1;对于 i = 1,总数为 2(元组序号)乘以 4(由 1 * 4 得出的 Ei 的值),即 8。最终的总数就为 1 + 8,即 9,这就是该单元的单元序号。
示例
下面的示例演示 Cell 元素的结构,其中包括每个单元的 VALUE、FORMATTED_VALUE 和 FORMAT_STRING 单元属性值。
<CellData>
<Cell CellOrdinal="0">
<Value xsi:type="xsd:double">16890</Value>
<FmtValue>16,890.00</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="1">
<Value xsi:type="xsd:int">50</Value>
<FmtValue>50</FmtValue>
<FormatString>Standard</FormatString>
</Cell>
<Cell CellOrdinal="2">
<Value xsi:type="xsd:double">36175.2</Value>
<FmtValue>$36,175.20</FmtValue>
<FormatString>Currency</FormatString>
</Cell>
</CellData>