2

MDX 查询相当于:

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

somecount在我的情况下是一个维度(不是维度)。

据我了解,WHEREMDX 查询中的子句不支持小于或大于操作。somecount在我的情况下是Timestamp。因为我想聚合用户传递的参数数据(可以聚合昨天、过去 7 天、过去 15 天、上个月等)。因此,预先计算时间戳并将其存储为年-月-日-时间将无济于事。

4

3 回答 3

1

由于语法相似,混合使用 SQL 和 MDX 时会出现常见错误。但是 MDX 不像 SQL。

我建议阅读这个Gentle MDX 教程以获得更好的理解。

Select *

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

.. where somecount > num1 and somecount < num2?

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

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

有几种方法可以获取成员列表,请查看可用的MDX 函数列表以了解所有可能的情况。

祝您在 MDX 中的第一步好运。

于 2011-11-18T11:24:22.710 回答
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" ))
于 2011-12-12T10:27:42.063 回答
0
SELECT Measures.members ON ROWS,
      Dimension.members ON Columns
  FROM Cube
 WHERE somecount.value > num1 
   AND somecount.value < num2 
于 2012-07-02T09:50:34.727 回答