ssas - MDX:组合不同标准的输出

我是 MDX 查询的新手,在 SSAS 工作。我有两个工作正常的查询,但我希望将它们的输出合并为一个结果。这两个查询在它们的 where 子句选择的城市不同,但它们都来自同一个立方体并使用相同的度量。

A_to_B:供应商城市A到消费者城市B

SELECT { [Measures].[Quantity - Transactions] } ON COLUMNS,
       { [Tb Product].[Name].[Name].ALLMEMBERS } ON ROWS
FROM [Cube]
WHERE ([Tb Supplier].[City].&[A],
       [Tb Consumer].[City].&[B])

B_to_A:供应城市B到消费者城市A

SELECT { [Measures].[Quantity - Transactions] } ON COLUMNS,
       { [Tb Product].[Name].[Name].ALLMEMBERS } ON ROWS
FROM [Cube]
WHERE ([Tb Supplier].[City].&[B],
       [Tb Consumer].[City].&[A])

有没有办法让这些查询的输出按 Product 并排生成,就像这样?在 SQL 中,我会使用 FULL OUTER JOIN,但我无法找出 MDX 中的等价物。

|          | A_to_B | B_to_A |
| ProductA |     10 |      2 |
| ProductB |    100 |      0 |
| ProductC |      0 |     99 |

最佳答案

只需将 Where 语句移动到列:

Select
{[Measures].[Quantity - Transactions]} *
{
    ([Tb Supplier].[City].&[B], [Tb Consumer].[City].&[A]),
    ([Tb Supplier].[City].&[A], [Tb Consumer].[City].&[B])
} on 0,
{[Tb Product].[Name].[Name].AllMembers} on 1
From [Cube]

您可以创建计算成员以合并两个元组:

With 

Member [Tb Supplier].[City].[B2A] as
Aggregate([Tb Supplier].[City].&[B], [Tb Consumer].[City].&[A])

Member [Tb Supplier].[City].[A2B] as
Aggregate([Tb Supplier].[City].&[A], [Tb Consumer].[City].&[B])

Select 
    {[Tb Supplier].[City].[A2B],[Tb Supplier].[City].[B2A]} on 0
From [Cube]
Where ([Measures].[Quantity - Transactions])

https://stackoverflow.com/questions/43572611/

相关文章:

python - 如何在 Tensorflow 中以正确的方式使用自定义/非默认 tf.Graph?

c++ - 复制具有线程安全规则建议的非const参数的构造函数?

persistence - 在 Quartz 调度程序中看到异常导致作业无法运行

azure - 当结果具有相同分数时在 Azure 搜索中进行分页

java - 使用 Java 8 Streams 将 Map 的 Map 转换为 Lists

scikit-learn - 具有高斯过程的多输出空间统计

azure - 将 CloudFlare CDN 与 Azure Blob 存储结合使用

sql - 将前导零添加到 varchar 列

python-3.x - 安装anaconda3后找不到conda命令

hibernate - Envers 查询 - 返回 REVTYPE 以及修改的字段