MDX相当于SQL Query

时间:2011-11-18 07:26:42

标签: mysql mdx mondrian

MDX查询的等同于:

select * from tableName where somecount > num1 and somecount < num2?

somecount在我的案例中是一个维度(不是维度)。

据我所知,MDX查询中的WHERE子句不支持小于或大于操作。我的somecountTimestamp。因为我想汇总用户传递的参数数据(可以昨天汇总,过去7天,过去15天,上个月等)。因此,预先计算时间戳并将其存储为年 - 月 - 日时间将无济于事。

3 个答案:

答案 0 :(得分:1)

由于语法相似,混合SQL和MDX存在一个常见错误。但MDX与SQL不同。

我建议通过这个Gentle MDX Tutorial来更好地理解。

Select *

在MDX中没有等效的*,您必须通过放置尺寸来指定轴。例如,您可以使用[Measures] .members选择度量列表。

.. where somecount > num1 and somecount < num2?

对此的翻译是使用MDX subselects,奇怪但MDX where clause是不同的。它更像是:

Select [Measures].members on 0
from (
   select {All the members that match your filter} from [MyCube] 
)

有几种方法可以获取成员列表,查看MDX functions available列表以了解所有可能的内容。

祝你MDX的第一步好运。

答案 1 :(得分:0)

SELECT MEMBERS ON ROWS  FROM (SELECT Filter(filter) ON COLUMNS  FROM [FACT_TABLE])

过滤器应该是这样的

Filter([TIME].[YEAR].[YEAR].AllMembers, (
[TIME].[YEAR].CurrentMember.member_caption>="2009" AND 
[TIME].YEAR].CurrentMember.member_caption<="2012" ))

答案 2 :(得分:0)

SELECT Measures.members ON ROWS,
      Dimension.members ON Columns
  FROM Cube
 WHERE somecount.value > num1 
   AND somecount.value < num2