select measures.name on 0,
datediff("d", [Fecha].[Date].currentmember.member_value, [Dim Date].[Date].currentmember.member_value) on 1
from cube
错误:执行托管存储过程datediff失败了 以下错误:目标抛出了异常 invocation.Argument'Date1'无法转换为'Date'类型
有没有要求在mdx中使用datediff? 在维度中,这些成员被定义为日期时间,不确定这是否影响结果......
更新:我通过在数据源视图和多维数据集上进行计算解决了这个问题,我添加了一个可以在MDX中使用的度量来创建我需要的指标。当然,这都是使用SSAS来测试结果,而使用SSDT来创建成员。我希望这种方法可以帮助很多人,即使我不知道这是否是最好的情况。快乐的MDX;)
答案 0 :(得分:0)
默认情况下,轴将显示而不是member_value,但会显示成员名称,该名称始终为字符串。 Member_Value是一种衡量标准。
With Member MyDateDiff as
datediff("d", [Fecha].[Date].currentmember.member_value, [Dim Date].[Date].currentmember.member_value)
Select
(Measures.MyDateDiff, Measures.Name) on 0
(Fecha.Date.Members, [Dim Date].[Date].Members) on 1
From cube
修改强>
我对此也很陌生,但在你的评论之后,我认为我应该详细说明我为了获得类似的查询而经历的流程。
首先,确保您获得自己认为的数据。将这些Member_Value度量值放入Columns维度:
With
Member FechaDate as
[Fecha].[Date].currentmember.member_value
Member MyDate as
[Dim Date].[Date].currentmember.member_value
Select
(Measures.FechaDate, Measures.MyDate) on 0
(Fecha.Date.Members, [Dim Date].[Date].Members) on 1
From cube
您是否收到日期值?如果是,请尝试您的约会功能。如果没有,请检查维度定义。我不会惊讶地发现你的一个属性的ValueColumn被设置为关键字段而不是日期值字段,或者其他一些东西。
答案 1 :(得分:0)
您可能需要两个步骤,但日期添加方法应该没问题。 Bill的成员方法很好,但它将其作为字符串返回,而不是日期对象。如果它的格式正确,您应该能够:
Member MyDate as
DATEDADD("d", 1, VBAMDX!CDate([Dim Date].[Date].currentmember.member_value))
根据您的日期字符串最终格式化的方式,您可能还需要做更多的工作。