我已多次发布此问题,但遗憾的是没有人能理解,我很抱歉我的英语很差:( 我重新制定......
我希望在所有日期范围内获得与特定日期和星期几(JOUR)匹配的记录(DATE_DEB,DATE_FIN)
我可以在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)。
问题是,最好的方法是什么?
如何在MDX中实现SQL之间的子句?或大于或小于?
先感谢您。
要在MDX
中指定日期范围,您只需使用冒号运算符:
这是关于MSDN
:https://docs.microsoft.com/en-us/sql/mdx/range-mdx?view=sql-server-2017的文档
这是他们给出的例子:
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])