0

几个参考:

  1. Microsoft 关于 DATESBETWEEN 的文档
  2. 有点类似的问题,尽管公式的答案和导数没有返回正确的结果
  3. 微软今天的文档

根据上述 Microsoft 文档,我正在尝试根据 SSAS 表格模型中的当前日期计算过去三个月的计算结果。首先,我不知道如何使用 SSAS 并且我的公司没有提供任何学习资料,所以我一直在阅读 MSDN 文档,这可能不是开始的地方,所以如果这是错误的,我会感谢被告知。例如,使用C#or Ruby,我可以在控制台中测试代码以查看是否获得了我想要的结果,但我看不到如何在 SSAS Data Tools 的 DAX 语言中做到这一点 - 这是一个为用户提供的 GUI对他们能做的事情几乎没有权力(我花了四个小时才弄清楚如何访问维度的属性)。 我绝对是一个代码猴子。

我尝试使用以下公式(及其派生词),因为这看起来就像微软在他们的示例中所做的那样:

3MonthValue:=CALCULATE(SUM([MeasureOne])/SUM([MeasureTwo]),DATESBETWEEN(DateDimension[Date],DATEADD(DateDimension[Date],-3,MONTH),TODAY()))

结果,一无所获。当然,如果我运行类似的 SQL 逻辑,我会得到正确的结果。我还使用了提供的 SO 示例,尽管我怀疑这不完全是我想要实现的目标,并且只获得了空白作为答案。鉴于我需要计算某个时间范围之间的公式,在 SQL 中将是 WHERE 子句,我如何将其转换为 DAX?换句话说,DAX 的 WHERE 是什么,如果 CALCULATE 不正确,那么正确的方法是什么?

4

1 回答 1

1

当你说它不起作用时,你是什么意思?您使用的公式将您的日期维度的键作为您的 DATESBETWEEN 函数的开始日期 - 这意味着如果您希望该度量填充一个值,则需要在您的数据透视中使用特定日期来建立上下文。

如果您尝试在设计时查看度量,在编辑器中,没有上下文,因此不会填充度量。

此外,如果您正在查看包含多个日期的时间上下文,那也将不起作用。因此,假设您正在查看一个月或一个季度。这两个都包含多个 DateDimension[Date] 的数量 - 因此再次无法建立上下文。

回顾一下 - 使用设置为您的维度时间键的开始时间上下文查看日期范围(如 DATESBETWEEN)的度量只会在枢轴数据过滤到单个日期时显示在枢轴中。

您可以使用相同的函数对此进行测试,但通过将 DateDimension[Date] 替换为静态日期(或者可能是 TODAY())来硬设置开始日期。该度量应在设计时显示,因为公式包含完成计算所需的所有信息。

于 2014-06-26T14:35:21.677 回答