SSAS期初余额

SSAS期初余额,ssas,mdx,Ssas,Mdx,我正在SSAS中构建一个多维数据集,它使用库存移动数据来显示物料活动。这里可以看到这些数据的一个示例(希望这是可读的) 日期=客户=项目=接收数量=发货数量=移动 1/1/2000=Cust123=Item123=100=0=100 2011年11月5日=Cust123=Item123=10=0=10 2011年11月6日=Cust123=Item123=0=-5=-5 2011年11月7日=Cust123=Item123=1=0=1 目标是在多维数据集中包含一个期初余额。给定日期的期初余额定义

我正在SSAS中构建一个多维数据集,它使用库存移动数据来显示物料活动。这里可以看到这些数据的一个示例(希望这是可读的)

日期=客户=项目=接收数量=发货数量=移动

1/1/2000=Cust123=Item123=100=0=100

2011年11月5日=Cust123=Item123=10=0=10

2011年11月6日=Cust123=Item123=0=-5=-5

2011年11月7日=Cust123=Item123=1=0=1

目标是在多维数据集中包含一个期初余额。给定日期的期初余额定义为给定客户和项目(我的事实表包含许多不同的客户和项目)在当前日期之前所有日期的所有变动(从“变动”字段)的总和

因此,在样本数据中,2011年11月6日的期初余额将是客户和项目匹配且日期小于2011年11月6日的所有移动(来自移动字段)的总和。在我的样本数据中,这可以追溯到2000年1月1日


有没有一种方法可以让MDX帮助我在多维数据集中实现这一点?我对SSAS比较陌生,但我相信应该有办法在计算选项卡中包含一些MDX,对吗?任何帮助都将不胜感激。谢谢。

一个快速肮脏的方法是:

sum({null:[Date].[Date Hierarchy].CurrentMember.Lag(1)}, [Measures].[Movement])
这需要考虑以下几点:

  • 您的
    Date层次结构的
    CurrentMember
    将处于日级别
  • 您的数据集并没有那么大,因此可以很快进行此项计算

  • 如果您有一个更大的数据集,而且这对您来说很慢,那么您需要做的是首先总结以前的几个月(或几年,取决于您的分区级别),然后再总结本月的几天。

    一个快速的方法是:

    sum({null:[Date].[Date Hierarchy].CurrentMember.Lag(1)}, [Measures].[Movement])
    
    这需要考虑以下几点:

  • 您的
    Date层次结构的
    CurrentMember
    将处于日级别
  • 您的数据集并没有那么大,因此可以很快进行此项计算

  • 如果您有一个大得多的数据集,而且这对您来说很慢,那么您需要做的是首先总结以前的几个月(或几年,取决于您的分区级别),然后再在上面计算本月的天数。

    我将在基础表中捕获运行值。对现有的所有数据进行计算应该不会太多,而新数据将是轻而易举的事


    然后,您可以使用LastNoneEmpty度量(如果您有Enterprise edition),它应该是对任何地方的余额的即时响应。

    我将在基础表中捕获运行值。对现有的所有数据进行计算应该不会太多,而新数据将是轻而易举的事


    然后,您可以使用LastNoneEmpty measure(如果您使用的是Enterprise edition),对于任何地方的平衡,它都应该是即时响应。

    感谢您提供了快速而肮脏的解决方案。在测试之前,我的事实表由许多不同的客户和项目组成。在您的MDX解决方案中也需要考虑到这一点吗?@user1134307-它将使用
    Customer
    Item
    所在位置的当前元组,因此这将在
    Customer
    Item
    成员所在位置的所有位置进行汇总。太好了,谢谢Eric…我将对此进行测试。事实上,我正在查看大约70万行数据。根据你最初的帖子,你会称之为“大”吗?@user1134307-不算大,不算大。如果你遇到性能问题,我们可以开始构建更复杂的逻辑以更快地找到答案。所以我遇到了一个错误Eric。我有一个日期维度,我构建了一个名为date Hierarchy的日期层次结构。它包括日期、年-月、年-季度、年。我使用解决方案中的MDX创建了一个名为openbal的计算。当我将新度量值拖到浏览器中时,计算需要一些时间,然后返回#Value!在openbal的每一行中。错误为:在分析字符串[Date].[Date Hierarchy]时,在多维数据集中找不到级别[Date Hierarchy]。感谢您提供了快速而肮脏的解决方案。在测试之前,我的事实表由许多不同的客户和项目组成。在您的MDX解决方案中也需要考虑到这一点吗?@user1134307-它将使用
    Customer
    Item
    所在位置的当前元组,因此这将在
    Customer
    Item
    成员所在位置的所有位置进行汇总。太好了,谢谢Eric…我将对此进行测试。事实上,我正在查看大约70万行数据。根据你最初的帖子,你会称之为“大”吗?@user1134307-不算大,不算大。如果你遇到性能问题,我们可以开始构建更复杂的逻辑以更快地找到答案。所以我遇到了一个错误Eric。我有一个日期维度,我构建了一个名为date Hierarchy的日期层次结构。它包括日期、年-月、年-季度、年。我使用解决方案中的MDX创建了一个名为openbal的计算。当我将新度量值拖到浏览器中时,计算需要一些时间,然后返回#Value!在openbal的每一行中。错误为:在分析字符串[Date].[Date Hierarchy]时,在多维数据集中找不到级别[Date Hierarchy]。