Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/282.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server MDX,SSAS 2005计算SPLY(去年同期)_Sql Server_Ssas_Mdx - Fatal编程技术网

Sql server MDX,SSAS 2005计算SPLY(去年同期)

Sql server MDX,SSAS 2005计算SPLY(去年同期),sql-server,ssas,mdx,Sql Server,Ssas,Mdx,我正在努力实现以下目标:我有一个度量:[度量][销售]和一个时间维度:[时间][年-月-日]。我想通过以下方式添加新的度量:[Measures].[Sales SPLY]: 月份------------销售额------------销售额 2009年1月------12万,00------11万,00 2009年2月------100000,00------9000000,00 2009年3月------120 000,00------110 000,00 总计:340000,00-------

我正在努力实现以下目标:我有一个度量:[度量][销售]和一个时间维度:[时间][年-月-日]。我想通过以下方式添加新的度量:[Measures].[Sales SPLY]:

月份------------销售额------------销售额

2009年1月------12万,00------11万,00

2009年2月------100000,00------9000000,00

2009年3月------120 000,00------110 000,00

总计:340000,00-------290000,00

[Sales SPLY]的值是通过以下方式计算的:我创建了一个新的总和度量,并在多维数据集脚本中用以下代码替换它:

([Measures].[Sales SPLY], Leaves([Time])) = (PARALLELPERIOD([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember), [MEASURES].[Sales])

它正在工作,但是非常非常慢。有人知道写这个MDX更好的方法吗?在计算成员中仅使用Pararel期间将导致SPLY度量中的合计值不正确。拜托,我在谷歌上搜索了很多,找不到比这更好的了

我倾向于创建一个像

WITH
MEMBER [Measures].[Sales SPLY] as ([Measures].[Sales], ParallelPeriod([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember))
SELECT {[Measures].[Sales], [Measures].[Sales SPLY]} ON 0, ....
而且效果很好

在整个查询中,您是如何使用它的


Rob

我倾向于创建一个像

WITH
MEMBER [Measures].[Sales SPLY] as ([Measures].[Sales], ParallelPeriod([Time].[Year - Month - Day].[Year],1,[Time].[Year - Month - Day].currentmember))
SELECT {[Measures].[Sales], [Measures].[Sales SPLY]} ON 0, ....
而且效果很好

在整个查询中,您是如何使用它的


Rob

我需要将其作为成员添加到多维数据集。您提供的查询将返回良好的结果。但是,当用户浏览多维数据集时,展开时间维度并仅选择一年中的一部分,SPLY的总数是错误的(它是前一年的总和)。这里提到的问题是:但是我可以找到解决方案…使用ParallelPeriod和YTD组合的LastYearToDate成员是否会有帮助?对不起,Adam-我必须运行。。。我稍后再查看。不幸的是,用户可以选择包含两个月的时间段:2008年12月和2009年1月,销售数据应该显示2007年12月和2008年1月的销售总额。是的,应该没有问题。让我检查一下自己的一个多维数据集,看看它的行为是否符合我的想法。我需要将其作为成员添加到多维数据集。您提供的查询将返回良好的结果。但是,当用户浏览多维数据集时,展开时间维度并仅选择一年中的一部分,SPLY的总数是错误的(它是前一年的总和)。这里提到的问题是:但是我可以找到解决方案…使用ParallelPeriod和YTD组合的LastYearToDate成员是否会有帮助?对不起,Adam-我必须运行。。。我稍后再查看。不幸的是,用户可以选择包含两个月的时间段:2008年12月和2009年1月,销售数据应该显示2007年12月和2008年1月的销售总额。是的,应该没有问题。让我检查一下自己的一个立方体,看看它的行为是否与我所认为的一样。