2012-12-12 53 views
0

我想寫用等價的SQL MDX查詢:如何排除以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條款,但似乎沒有任何效果。

任何幫助表示讚賞!

+0

10秒谷歌搜索發現很多的選擇... http://www.bidn.com/blogs/ChrisAlbrektson/bidn-blog/1293/how-to- use-a-like-operator-in-mdx或http://social.msdn.microsoft.com/Forums/en-US/sqlanalysisservices/thread/a354c898-2816-4cb5-b318-09b8befb2b17/以名稱2 – xQbert

+0

@xQbert我沒有在搜索時發現這些頁面,我向你保證,我花了大約4個小時,試圖在昨天和今天之前讓它工作,然後才問我:)我會給這兩個嘗試。 – Codeman

+0

我很高興你有什麼你需要的搜索結果。我不是「做這項工作」但是研究的忠實粉絲。那很有趣。 – xQbert

回答

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 
} 
相關問題