1

我想像在 SQL 中那样使用 IN 运算符

SELECT column_name(s)
FROM table_name
WHERE column_name IN (value1, value2, ...);

如何在 MDX 查询中实现这一点?

for eg. [Customer ID] IN (1,2,3,4,5)

在这里,我不想使用 where 子句,因为不能在轴上选择 where 子句中使用的相同层次结构。有没有办法在没有 where 子句的情况下使用 IN 运算符?

我听说命名集可以在 mdx 查询中与 IN 运算符一起使用,但我想使用一个静态值列表来与 IN 运算符一起使用。这可能吗?

4

2 回答 2

1

以下 MDX 有什么问题:

select 
  {[Customer].[Customer ID].[1]
  ,[Customer].[Customer ID].[2]
  ,[Customer].[Customer ID].[3]
  ,[Customer].[Customer ID].[4]
  ,[Customer].[Customer ID].[5]} on 0
from YourCube;
于 2017-11-22T08:09:45.037 回答
1

除了Danylo Korostil 的答案之外的另一个选择是使用子查询:

SELECT 
    [Customer].[Customer ID].MEMBERS ON 0
FROM (
    SELECT 
        {([Customer].[Customer ID].[1]),
         ([Customer].[Customer ID].[2]),
         ([Customer].[Customer ID].[3]),
         ([Customer].[Customer ID].[4]),
         ([Customer].[Customer ID].[5])} ON 0
    FROM
        [Your Cube]
)

当我还使用 SUBSET 或 ORDER 函数时,使用子查询(或嵌套子查询)对我来说比限制 SELECT 子句中的成员更好。

于 2017-11-22T20:21:55.120 回答