您的位置:首页 > 其它

MDX学习心得总结

2007-03-21 08:21 441 查看

MDX 学习心得

1、在MDX中要完全的摆脱SQL中的查询观念,在MDX任何一个查询都是所有的Demension(维度)共同作用的结果。没有在MDX语句中出现的DEMEMSION是背景维度,Analysis Service将会对其取默认值,出现在select后面的称为轴维度,在Analysis Services中,最多取128维,出现在WHERE后面的是切片维度。

2、注意区分在数据立方中单元,元组和集合之间的关系。

3、MDX语句的查询过程。在MDX语句中,第一部工作是先生成轴维度的成员,再根据轴维度成员的关系读取数据。特别要注意的是在crossjoin的时候涉及到轴维度成员的塞选和排序的时候,其结果的正确性,有依赖关系的两个维度不能放在同一个轴上。

4。注意使用计算成员(member),命名集(set),成员属性(DEMINSION PROPERTIES).

ADO MD 学习心得

1、ADO MD中间对象与数据立方(Cubs)的对应关系。

Axis 表示单元集的位置轴或过滤轴,包含所选的一维或多维成员。
Catalog 包含特定多维数据提供者 (MDP) 的多维模式信息(即立方和基本维、分级结构、级别和成员)。
Cell 代表位于轴坐标交叉点上的数据,包含在单元集中。
Cellset 表示多维查询的结果。它是从立方或其它单元集中选出的单元的集合。
CubeDef 表示多维模式中的一个立方,包含有关维的集合。
Dimension 表示多维立方的一个维,包含成员的一个或多个分级结构。
Hierarchy 表示一种方式,按此方式维的成员可以被合计或“卷起”。维可以按照一个或多个分级结构进行合计。
Level 包含一个成员集,其中每个成员在分级结构内均有相同的等级。
Member 代表立方中级别的成员、级别成员的子或位于单元集的轴上某位置的成员。
Position 代表定义轴上点的不同维的一个或多个成员的集合。
×注意POSITION的理解。position是从数据出发,一个数据格对应的上面有多少个成员就是Position.Members.

2、C#中读取CellSet的例子

for(int i = 0;i <cls.Axes[0].Positions.Count;i++)
{
Response.Write("<TH>"+cls.Axes[0].Positions[i].Members[0].Caption+"</TH>");
}
Response.Write("</TR>");

object[] coords= new object[2];
for(int i = 0; i < cls.Axes[1].Positions.Count;i++)
{
Response.Write("<TR>"); //Start table row
Response.Write("<TD bgcolor = 'LightBlue'><b>" + cls.Axes[1].Positions[i].Members[0].Caption+ "</b></TD>");
for ( int j = 0;j < cls.Axes[0].Positions.Count; j++) //In each row, for each column
{

coords[0] = j;
coords[1] = i;

ADOMD.Cell newcell;
newcell = cls.get_Item(ref coords);
object dispvalue;
dispvalue = newcell.FormattedValue;

if ( newcell.FormattedValue != null)
{
Response.Write("<TD>" + dispvalue + "</TD>");
}
else
{
Response.Write("<TD> 0 </TD>");
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: