Ssas 使用当前年度筛选MDX查询(&A);使用Now()的月份

Ssas 使用当前年度筛选MDX查询(&A);使用Now()的月份,ssas,mdx,olap-cube,ssas-2008,Ssas,Mdx,Olap Cube,Ssas 2008,如何使用当前年份和月份过滤MDX中的数据 到目前为止,我所做的是: WHERE strtomember{ [Time Dim].[FSCL YEAR].&["+Format(now(), "yyyy")+"], [Time Dim].[FSCL MONTH].&["+Format(now(), "m")+"] } 但是它不起作用。strotemember是一个接受一个参数(即字符串)的函数。当你使用大括号时,你似乎试图传递一个集合。正确的语法是: WHERE (

如何使用当前年份和月份过滤MDX中的数据

到目前为止,我所做的是:

WHERE strtomember{ [Time Dim].[FSCL YEAR].&["+Format(now(), "yyyy")+"], [Time Dim].[FSCL MONTH].&["+Format(now(), "m")+"] }

但是它不起作用。

strotemember是一个接受一个参数(即字符串)的函数。当你使用大括号时,你似乎试图传递一个集合。正确的语法是:

WHERE ( 
      strtomember("[Time Dim].[FSCL YEAR].&[" + Format(now(), "yyyy") + "]"),
      strtomember("[Time Dim].[FSCL MONTH].&[" + Format(now(), "m") + "]")
      )

在这两种情况下,
strotmember
的参数都是由固定字符串连接而成的字符串,如
“[Time Dim].[FSCL YEAR].&[”
“]”
,以及
Format
函数的结果。

第一次查询的结果是什么?第二个查询的结果是什么?
[Measures].[Measures]
是计算的度量吗?如果是的话,你能分享一下它的定义吗?这里没有计算。所有这些都是简单的测量和尺寸。很抱歉,我无法在此处共享实际的MDX。@再见,因为您使用的是
[Dimension].[Dim].[Dim]。所有成员
而不是
[Dimension].[Dim].[Dim]。成员
,我假设差异在于此层次结构的计算度量值?否则,如果没有计算成员参与,那么结果应该匹配。等等,我将再试一次,谢谢你的建议是的,你是对的。现在更好了。元组或集合在where子句的函数error中必须使用相同的层次结构。@Aditya哦,我明白了。他们来自不同的阶层。因此,必须将它们放入
WHERE
条件中的元组中,而不是集合中。我纠正了,我不认为这有什么意义
Generate
对集合进行循环,并返回一个字符串,该字符串包含从每个循环迭代返回的字符串的串联,或者返回从每个循环迭代返回的集合的并集。你在哪里看到要循环的场景?在哪里可以看到字符串或集合结果?我只看到一个元组结果。您的错误消息声明“在函数error for where子句中”。我在代码中没有看到对函数“Error”的调用。很可能是因为你把我的代码改编成你的案例时出了问题。嘿,真的很抱歉,我用的是旧的,它现在可以工作了,但是没有显示任何度量值,只有空值。可能我得检查一下。