使用MDX查询从日期范围获取特定日期的日程表

时间:2019-04-24 16:06:08

标签: ssas mdx between dimensional-modeling

我已经多次发布此问题,但不幸的是没有人能理解,对不起我的英语不好:(
我重新制定...

我有以下事实表 enter image description here

我想获取与所有日期范围(DATE_DEB,DATE_FIN)中的特定日期和星期几(JOUR)匹配的记录

我可以这样在SQL中完成此操作:

SELECT  DATE_DEB, 
DATE_FIN,
ID_HOR,
to_char(HR_DEB,'hh24:mi:ss') as HR_DEB,
to_char(HR_FIN,'hh24:mi:ss') as HR_FIN,
JOUR
FROM  GRP_HOR HOR, GRP
WHERE GRP.ID_ACTIV_GRP = HOR.ID_ACTIV_GRP
AND TO_DATE('1998-01-08', 'YYYY-MM-DD') between DATE_DEB and DATE_FIN
AND 1 + TRUNC(TO_DATE('1998-01-08', 'YYYY-MM-DD')) - TRUNC(TO_DATE('1998-01-08', 'YYYY-MM-DD'), 'IW') = JOUR

因此,我将获得29条记录(如下所示),这些记录包含在每个范围内,并与星期几(JOUR)相匹配,之后我希望将它们按小时数(HR_DEB,HR_FIN)进行放大。

问题是,执行此操作的最佳方法是什么?

  • 创建2个日期维度,并将它们与DATE_DEB,DATE_FIN链接。

  • 创建2个时间维度,并将它们与HR_DEB,HR_FIN链接。

如何在MDX中实现between SQL子句?还是geater小于或小于?

谢谢。

输出:
enter image description here

1 个答案:

答案 0 :(得分:1)

要在MDX中指定日期范围,只需使用冒号运算符:

以下是MSDN上的文档:R on MacOS Error: vector memory exhausted (limit reached?)

这是他们给出的示例:

With Member [Measures].[Freight Per Customer] as  
 (  
     [Measures].[Internet Freight Cost]  
     /   
     [Measures].[Customer Count]  
)  
SELECT   
    {[Ship Date].[Calendar].[Month].&[2004]&[1] : [Ship Date].[Calendar].[Month].&[2004]&[3]} ON 0,  
    [Product].[Category].[Category].Members ON 1  
FROM  
    [Adventure Works]  
WHERE  
    ([Measures].[Freight Per Customer])  
相关问题