Quantcast
Channel: SQL Server Analysis Services Forum
Viewing all articles
Browse latest Browse all 2472

Help need in MDX

$
0
0

Hi Experts - I have a requirment to perform some set based filtering in MDX.  I will explain my requirement with the example:

  P1 P2 P3 P4
Customer 1 Yes Yes No No
Customer 2 Yes No Yes No
Customer 3 Yes No No Yes
Customer 4 No Yes Yes No
Customer 5 No Yes No No

I need to display the rows of the customers who has (P1 or P2 ) AND who dosnt have (P3 AND P4). 

SQL equivalent:  select customer from table where product IN('P1','P2')
and  customer not in (select Customer from table where product='P3' OR product='P4')   .  THis query would return Customer 1 and customer 5.  I have similar requirement in MDX where I need to peroform set based operation.  I have used below query but it is not returning proper results. 

SELECT
NON EMPTY
{
[Measures].[Order Extension],
[Measures].[Order Qty]
}
ON COLUMNS,
NON EMPTY
{
[OrderLine].[Order Line].[Order Line].MEMBERS
}
DIMENSION PROPERTIES
MEMBER_CAPTION,
MEMBER_UNIQUE_NAME,
[OrderLine].[Order Line].[Country],
[OrderLine].[Order Line].[Territory Id],
[OrderLine].[Order Line].[Customer],
[OrderLine].[Order Line].[Institution],
[OrderLine].[Order Line].[Customer Contact],
[OrderLine].[Order Line].[Customer City],
[OrderLine].[Order Line].[Customer State],
[OrderLine].[Order Line].[Customer Zip],
[OrderLine].[Order Line].[Customer Street1],
[OrderLine].[Order Line].[Customer Street2],
[OrderLine].[Order Line].[Customer Street3],
[OrderLine].[Order Line].[Customer Phone],
[OrderLine].[Order Line].[Customer Fax],
[OrderLine].[Order Line].[Customer Email],
[OrderLine].[Order Line].[Item],
[OrderLine].[Order Line].[Item Description]

ON ROWS FROM [Reporting]
WHERE
(

strtoset("{[OrderLine].[Company].&[1]}")
,{filter(
       [OrderLine].[Item].allmembers,
        ([OrderLine].[Item].CurrentMember.Name="WASN"  OR
       [OrderLine].[Item].CurrentMember.Name="39321A"
      OR [OrderLine].[Item].CurrentMember.Name="39473A"
      ) OR ([OrderLine].[Item].CurrentMember.Name<>"39376A" OR [OrderLine].[Item].CurrentMember.Name<>"AMGST")
  )
 }
 ,[OrderLine].[Customer Active Inactive].&[A]
 ,[OrderLine].[Territory Id].[All]
)

 I think above query is performing row wise operation.  Can someone tell me how can I perform set based operations on above MDX based on my requirement.

thanks


Viewing all articles
Browse latest Browse all 2472

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>