Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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
Mdx 蒙德里安的日期范围_Mdx_Olap_Mondrian - Fatal编程技术网

Mdx 蒙德里安的日期范围

Mdx 蒙德里安的日期范围,mdx,olap,mondrian,Mdx,Olap,Mondrian,我想获取时间戳t1到t2的数据。但t1和t2可能不一定在我的数据库表中。所以,我想要的是:它应该在MDX查询本身中找到下一个大于或等于t1的可用时间戳(如果t1不在db表中,则大于t1,如果t1在db表中,则大于t1),以及小于或等于t2的最后一个可用时间戳(如果t2不在db中,则小于t2,如果t2在db中) .FirstSibling、.LastSibling、.FirstChild、.LastChild、.NextMember、.LastMember、HEAD、TAIL对我不起作用,因为我希

我想获取时间戳t1到t2的数据。但t1和t2可能不一定在我的数据库表中。所以,我想要的是:它应该在MDX查询本身中找到下一个大于或等于t1的可用时间戳(如果t1不在db表中,则大于t1,如果t1在db表中,则大于t1),以及小于或等于t2的最后一个可用时间戳(如果t2不在db中,则小于t2,如果t2在db中)


.FirstSibling、.LastSibling、.FirstChild、.LastChild、.NextMember、.LastMember、HEAD、TAIL对我不起作用,因为我希望时间戳>=t1,而用MDX这种方式处理日期可能会很痛苦。我过去也做过类似的事情,将
名称
标题
转换为字符串/数字/日期,并将其与输入参数t1和t2进行比较(类似地转换为相同格式的字符串/数字/日期)

也许t1是一个字符串“31/12/2010”,并且多维数据集包含[Time].[All Time].[2010].[December].[29]等成员,那么您需要将两者转换为通用格式进行比较。MDX提供了一些方法,例如
MemberToStr()
,这些方法将为
.CurrentMember
提供一个字符串表示形式,并允许您比较两者

VBA函数可以在某些风格的MDX中使用,因此您可以使用
Replace
InStr
操作字符串,甚至可以调用
CDate()
等函数来获取与输入参数形式相同的值

您最终的MDX可能看起来像这样……尽管我已经大大简化了将成员标题转换为CDate函数将接受的字符串所需的操作:
选择

{Filter({[Time].[Day].members},CDate([Time].CurrentMember.Caption)用MDX以这种方式摆弄日期可能会很痛苦。我过去也做过类似的事情,将
Name
Caption
转换为字符串/数字/日期,并将其与输入参数t1和t2进行比较(类似地转换为相同格式的字符串/数字/日期)

也许t1是一个字符串“31/12/2010”,并且多维数据集包含[Time].[All Time].[2010].[December].[29]等成员,那么您需要将两者转换为通用格式进行比较。MDX提供了
MemberToStr()等方法
这将为您提供
.CurrentMember
的字符串表示形式,并让您比较两者

VBA函数可以在某些风格的MDX中使用,因此您可以使用
Replace
InStr
操作字符串,甚至可以调用
CDate()
等函数来获取与输入参数形式相同的值

您最终的MDX可能看起来像这样……尽管我已经大大简化了将成员标题转换为CDate函数将接受的字符串所需的操作:
选择
{Filter({[Time].[Day].members},CDate([Time].CurrentMember.Caption)