MDX查询的等同于:
select * from tableName where somecount > num1 and somecount < num2?
somecount
在我的案例中是一个维度(不是维度)。
据我所知,MDX查询中的WHERE
子句不支持小于或大于操作。我的somecount
是Timestamp
。因为我想汇总用户传递的参数数据(可以昨天汇总,过去7天,过去15天,上个月等)。因此,预先计算时间戳并将其存储为年 - 月 - 日时间将无济于事。
答案 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