请问,誰有SQL SERVER中关于Formula(公式)的详细说明?那帮助文件不知所云。(200分)

  • 主题发起人 主题发起人 cxz9
  • 开始时间 开始时间
C

cxz9

Unregistered / Unconfirmed
GUEST, unregistred user!
请问,誰有SQL SERVER中关于Formula(公式)的详细说明?那帮助文件不知所云。
要不举个例子也行。好像只能+ -的。那datetime相减怎么是1990-01-01?能不能是天数?
还有象借书软件一样。能自动计算什么时间过期。
我是要在Formula(公式)中实现。
不要用SP
 
自定义汇总公式和自定义成员公式
自定义汇总公式和自定义成员公式是使用多维表达式 (MDX) 编写的表达式,用来确定与成员相关联的多维数据集的单元值。自定义汇总公式适用于级别中除计算成员以外的所有成员。自定义成员公式适用于单个成员。

自定义汇总公式和自定义成员公式不同于计算成员。自定义汇总公式和自定义成员公式适用于存在于维度表中的成员。而计算成员不存储在维度表中。计算成员还提供除维度表中成员以外的成员。

自定义汇总公式和自定义成员公式计算使用类似的 MDX 表达式。

自定义汇总公式和自定义成员公式都替代与度量值相关联的聚合函数。例如,在指定自定义汇总公式之前,使用 Sum 聚合函数的度量值对 Time 维度的如下成员产生如下值:

1997: 2100
Quarter 1: 700


Quarter 2: 500


Quarter 3: 100


Quarter 4: 800
1998: 1500
Quarter 1: 600


Quarter 2: 200


Quarter 3: 300


Quarter 4: 400
为 Year 级别指定如下自定义汇总公式:

Time.CurrentMember.LastChild

该自定义汇总公式替代 Sum 聚合函数并为 Year 成员产生如下新值:

1997: 800


1998: 400
Quarter 成员的值不变。

自定义成员公式的操作方式与自定义汇总公式类似,但每个公式只影响一个成员。自定义成员的值由自定义成员公式提供。例如,下列自定义成员公式可用来为 Time 维度中 1998 成员的 Quarter 4 子代成员提供值。

Time.[Quarter 3] * 1.5

自定义成员公式存储在维度表的一列中。启用自定义成员公式时,会出现一个对话框,可以在该对话框中选择或创建此列。此过程将在本主题后面的部分加以总结。

若要将自定义汇总公式只应用于级别中的某些成员,请使用 IIf 和 Rollupchildren 函数。RollupChildren 函数可使用函数中指定的一元运算符对指定成员的子代进行汇总。例如,若要将自定义汇总公式 Sales* 0.10 只应用于 SalesPersons 的子代,请键入下面的自定义汇总公式:

IIf(Employees.CurrentMember.Parent.Name = "SalesPersons", Sales * 0.10,
RollupChildren(Employees.CurrentMember,
Employees.CurrentMember.Properties("UNARY_OPERATOR"))

有关这些函数的更多信息,请参见 IIf 和 RollupChildren。

在求值次序方面,如果级别既有自定义汇总公式又有自定义成员公式,则自定义成员公式重写自定义汇总公式。在解析自定义汇总公式和自定义成员公式之前,系统会先解析计算成员。如果一个多维数据集中包含多个具有自定义汇总公式或自定义成员公式的维度,系统则按将维度添加到多维数据集的顺序解析公式。可以在多维数据集编辑器树窗格中查看或更改该顺序。有关各种公式的求值次序的更多信息,请参见理解传递次序和求解次序。

若要在除"(全部)"级别以外的任何级别中指定自定义汇总公式,请使用级别的 Custom Rollup Formula 属性。若要在"(全部)"级别中指定自定义汇总公式,请使用维度的 All Member Formula 属性。可以在多维数据集编辑器的属性窗格中访问这些属性。单击这些属性值旁边的编辑("...")按钮显示 MDX 生成器,您可以在其中构造自定义汇总公式。

在共享或专用维度中都可以指定自定义汇总公式。如果在两种维度中都指定了自定义汇总公式,则多维数据集专用维度中的自定义汇总公式优先。

若要在一个级别中启用自定义成员公式,请在维度编辑器(如果维度是共享的)或多维数据集编辑器(如果维度是专用的)的属性窗格中使用级别的 Custom Members 属性。单击该属性值旁边的编辑("...")按钮显示"定义自定义成员列"对话框,您可以在其中选择或创建一列来存储公式。关闭该对话框后,如果维度为写启用状态,则可以在维度编辑器(如果维度是共享的)或维度浏览器的自定义成员公式窗格中创建公式。(若要执行此操作,请确保写启用的维度所在的多维数据集自该维度上次更改后曾经过处理。)如果维度不处于写启用状态,则必须使用 Analysis Manager 之外的某种工具将公式插入到列中。



说明 如果多维数据集有一个 Aggregate Function 属性设置为 Distinct Count 的度量值,则将自定义汇总运算符或表达式添加到一个级别中将导致多维数据集的结构变得无效。
 
谢谢Forgot大侠,我还有一点不明白。
那MDX 生成器生成器什么的是不是要另外安装的?
还有能不能举个例子。
如:在图书管理中,
借书有期限,那怎么根据借书日期来自动计算它是否过期。
谢谢。(注不要用SP)
 
SQL SERVER 中,不是有datediff函数吗?
这种问题也问?!
 
mikez提出的很好,可以参考他的意见
 
两个笨笨在嚷什么都不知道,这种函数誰不知道?
我是要在Formula(公式)中实现。
不要用SP
没看清题目别嚷嚷!!
 
datediff就一定要用再sp中?
莫名?!
 
你自己试试,能在Formula(公式)中用吗?
还不服气!
 
forgot2002,请到http://www.delphibbs.com/delphibbs/dispq.asp?lid=1308976
领分
 
多人接受答案了。
 
后退
顶部