如何在MDX中排除以特定字符串开头的列?

时间:2012-12-12 18:12:14

标签: sql mdx business-intelligence cube

我正在尝试使用等效的SQL编写MDX查询:

SELECT m.ID, m.CID, m.Orders
FROM dbo.Measures as m
WHERE SUBSTRING(m.CID, 1, 4) <> 'PID_'

基本上,排除CID以'PID_'

开头的所有行

这就是我到目前为止在MDX中所拥有的:

SELECT 
{
    [Measures].[ID] AS ID,
    [Measures].[Orders] AS NumberOfOrders,
}
ON COLUMNS, 
{
    [Channel].[Channel Account ID].[Channel Account ID].Members
    * [Channel].[Channel].[Channel].Members // exclude accounts starting with 'PID_'
}

我尝试了EXCEPT-以及WHERE条款,但似乎都没有。

感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

我找到了xQbert链接提供的答案。

这就是答案:

ON COLUMNS, 
{
    FILTER([Channel].[Channel Account ID].[Channel Account ID].Members, 
        LEFT([Channel].[Channel Account].Properties("Channel Account ID"), 4) 
            <> "PID_")
    * [Channel].[Channel].[Channel].Members
}