首页 > 解决方案 > MDX 组合查询

问题描述

我是 MDX 新手,正在尝试将 2 个单独的查询组合成以下格式:

|产品名称|数量麦迪逊_芝加哥|数量芝加哥_麦迪逊|

我有两个单独的查询,它们为下面列出的数量创建了每个标准:

------Query #1------
WITH
   MEMBER measures.Quantity_Madison_Chicago as 'COALESCEEMPTY( [Measures]. 
   [Quantity - Tb Transactions], 0)' 
SELECT {
    measures.Quantity_Madison_Chicago
} ON COLUMNS,
  {(
    [Tb Product].[Name].[Name].ALLMEMBERS
  )} ON ROWS
FROM (
  SELECT ({
    [Tb Consumer].[City].&[Chicago]
  }) ON COLUMNS
FROM (  
  SELECT ({ 
    [Tb Supplier].[City].&[Madison]
  }) ON COLUMNS
FROM [DS715]))

------Query #2------
WITH
   MEMBER measures.Quantity_Chicago_Madison as 'COALESCEEMPTY( [Measures]. 
   [Quantity - Tb Transactions], 0)'
SELECT {
   measures.Quantity_Chicago_Madison
} ON COLUMNS,
{(
    [Tb Product].[Name].[Name].ALLMEMBERS
)} ON ROWS
FROM (
   SELECT ({
     [Tb Consumer].[City].&[Madison]
}) ON COLUMNS
FROM (
   SELECT ({
     [Tb Supplier].[City].&[Chicago]
}) ON COLUMNS
FROM [DS715]))

任何帮助将不胜感激。

谢谢。

标签: sql-servermdx

解决方案


您可以使用两个计算成员来做到这一点:

WITH  
MEMBER measures.Quantity_Madison_Chicago 
  CASE WHEN
      [Tb Consumer].[City].currentMember=[Tb Consumer].[City].&[Chicago]
         AND
      [Tb Supplier].[City].currentMember=[Tb Supplier].[City].&[Madison]
THEN COALESCEEMPTY( [Measures]. 
   [Quantity - Tb Transactions], 0)
ELSE 0
END

MEMBER measures.Quantity_Chicago_Madison AS
  CASE WHEN
      [Tb Consumer].[City].currentMember=[Tb Consumer].[City].&[Madison]
         AND
      [Tb Supplier].[City].currentMember=[Tb Supplier].[City].&[Chicago]
THEN COALESCEEMPTY( [Measures]. 
   [Quantity - Tb Transactions], 0)
ELSE 0
END


SELECT {
   measures.Quantity_Chicago_Madison , measures.Quantity_Madison_Chicago 
} ON COLUMNS,
{  [Tb Product].[Name].[Name].ALLMEMBERS } ON ROWS
FROM [DS715]

我认为您不需要在选择中对供应商/消费者城市的立方体进行切片才能工作,但我目前没有 SSAS 可以尝试。如果它不起作用,请按照您使用 2 个计算成员所做的选择并在消费者和供应商维度子选择中添加两个城市


推荐阅读