所以,我还是 MDX 的新手(我来自 mssql),但是这个项目需要我与 MDX 数据库对话。因此,我继承了一个查询,如下所示:
SELECT NON EMPTY
{
[Measures].[Time Spent]
} ON COLUMNS,
NON EMPTY
{
[Consultant].[Account Name].[Account Full Name].ALLMEMBERS *
[Consultant].[Activity Full Name].[Activity Full Name].ALLMEMBERS *
[Consultant].[Description].[Description].ALLMEMBERS *
[Consultant].[Engineer Full Name].[Engineer Full Name].ALLMEMBERS
} DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM
(
SELECT
( [Date].[Date].&[2013-09-03T00:00:00] : [Date].[Date].&[2013-10-19T00:00:00] ) ON COLUMNS,
(
[Consultant].[Engineer Full Name].&[PERSON],
[Consultant].[Account Full Name].&[ACCOUNT],
) ON ROWS
FROM [Data]
) CELL PROPERTIES VALUE, BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING, FONT_NAME, FONT_SIZE, FONT_FLAGS;
显然,日期、PERSON 和 ACCOUNT 实际上是从系统更高层传入的参数,但希望你明白这一点。
此查询正在运行(感谢回答了之前的 SO 问题 - 谢谢!) - 我得到了数据,这就是我想要的数据。但是,我刚刚收到一个能够从多个帐户返回结果的请求。我真的很希望能够修改该查询以说明帐户全名是 [ACCOUNT] 或 [OTHER ACCOUNT] 或 [DIFFERENT OTHER ACCOUNT],但只是附加查询似乎被视为 AND?有什么方法可以对这些值执行 OR 或 IN 吗?(即工程师过滤的子查询为一值,账号名为一数。)
我意识到就我的时间而言,更简单的方法是只运行上述查询 n 次并将结果集连接在一起,但我认为这也是一种丑陋的方式。
谢谢!