我是 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])
关于ssas - MDX:组合不同标准的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43572611/