我想创建一个计算度量,它根据维度属性仅汇总事实表中的特定记录子集.
鉴于:
尺寸
措施
关系
*LedgerLineItem是FactLedger的简并维度
如果我通过LedgerLineItem.Type分解LedgerAmount我可以很容易地看到收费,支付,信用等多少,但是当我没有通过LedgerLineItem.Type分解时,我不能轻易地将信用,付费,信用等添加到数据透视表.我想创建单独的计算度量,仅对特定类型(或多种类型)的分类帐事实求和.
所需输出的一个例子是:
| Year | Charged | Total Paid | Amount - Ledger |
| 2008 | $1000 | $600 | -$400 |
| 2009 | $2000 | $1500 | -$500 |
| Total | $3000 | $2100 | -$900 |
Run Code Online (Sandbox Code Playgroud)
我曾试图通过几种方式创建计算出的度量,每种方法都可以在某些情况下运行,但在其他情况下则不然.现在在有人说在ETL中这样做之前,我已经在ETL中完成了它并且它工作得很好.作为学习更好地理解MDX的一部分,我想要做的是弄清楚如何复制我在MDX中的ETL中所做的事情到目前为止我无法做到这一点.
这是我做过的两次尝试以及它们的问题.仅当分类帐类型位于数据透视表中时,此方法才有效.它返回正确数量的分类帐条目(虽然在这种情况下它与[金额 - 分类帐]相同但是当我尝试删除类型并且只获得所有分类帐条目的总和时它返回未知.
CREATE MEMBER CURRENTCUBE.[Measures].[Received Payment]
AS CASE WHEN ([Ledger].[Type].currentMember = [Ledger].[Type].&[Credit])
OR ([Ledger].[Type].currentMember = [Ledger].[Type].&[Paid])
OR ([Ledger].[Type].currentMember = [Ledger].[Type].&[Held Money: Copay])
THEN [Measures].[Amount - ledger]
ELSE …
Run Code Online (Sandbox Code Playgroud) 我已经离开了编程游戏一段时间,并认为将一个简单的实用程序应用程序放在一起,用于从sql server上的多个数据库中收集数据会很有趣.
这是我想象的一个非常简单的应用程序,它将连接到sql server,一个设置查询的地方,该查询将填充带有命名参数的列表(数据库名称,小部件等),以及要输入的部分我的文字带有一个可以替换的标记.
下面我希望有一个网格在查询运行时自动更新,即使它们还没有完成.这对我来说似乎是一个很好的方式进入F#,因为我要在C#中构建一个应用程序,所以我挖了但是在今天花了六个小时之后,我无处可去.是否有一个很好的网站,有一些人可以推荐的基本教程,以及构建和运行开箱即用的样本?
以下是我今天所做的不起作用:从MSDN下载VS2012 Ultimate RC.
去了在线画廊并安装了六个不同的示例项目.打开每个示例项目并点击运行,其中没有一个实际运行.
由于样本过时或者我的环境在某种程度上不正确(即使我今天刚从头开始安装),因此我无法判断这是否是预期的行为.
如果我能找到世界上最简单的应用程序,它将连接到冒险工程并加载一个网格中的记录列表,我将远远超过我现在的位置,这就是我的车轮.如果对于这类问题这是错误的地方,我会欢迎就我应该问的地方提出建议,如果这只是一个愚蠢的想法而且不应该尝试用F#和fsharpx之类的东西,我也会欢迎这些反馈,并且会然后试着弄清楚如何在C#中做到这一点.
我在SSAS 2005中有一个立方体,用于计算数百万条记录的运行总和.当前实现在MDX中使用PeriodsToDate sum函数,并且速度非常慢,在某些情况下需要15分钟或更长时间才能返回结果.这个问题有很多解决方案,所以我希望其他人已经测试了其中的一些,可以节省我实施和测试每个问题的时间.
是否更喜欢使用游标在T-SQL中计算运行总和和滑动窗口类型计算(请不要使用Celko的交叉连接解决方案,我知道它们在纸上看起来不错,但是随着数据的增长,交叉连接解决方案非常慢),使用SSIS中的脚本任务(或者在集成服务中有更好的方法)或在Analysis Services中使用MDX吗?
还有其他想法吗?