我有一个 SSRS 报告,它使用 SSAS 多维数据集作为源,报告本身工作正常,其中包括两个参数作为级联下拉列表,并且其中有多个值。现在我想在报告服务器中设置一个数据驱动的订阅,在那里我面临着提供两个维度的交叉连接的问题,这些维度应该作为基础数据源输入到报告参数中。

预期输出的 TSQL 等效项是:

Select programyear,AssignCounty, convert(varchar(10), tb1.year) + '_' +
tb2.county 'FileName'  from
(select '[Date].[Program Year].&[' + Convert(varchar(10), [Program Year])
+ ']' 'ProgramYear', [Program Year] 'year'
From d_mcaa_date) tb1,
(select '[Plan].[Auto Assignment County].&[' + Convert(varchar(10), [Auto
Assignment County]) + ']' 'AssignCounty', [Auto Assignment County]
'county' From d_mcaa_plan) tb2

我希望将以下报告参数提供为:
计划年:[日期].[计划年].&[13]
县:[计划].[自动分配县].&[萨克拉门托]

请注意,日期和计划是我的维度。

我正在寻找一个 MDX/DAX 代码,我可以在其中将日期维度中的“计划年”的所有值和计划维度中的“自动分配县”的所有值列为两列,作为交叉连接。这将制定一个数据集,当您设置订阅时,该数据集又可以提供给 SSRS 报告参数。

我确实尝试过以下代码:
select {} on 0,
{
[Date].[Program Year].Children
*
[Plan].[Auto Assignment County].Children
}  on 1
from [Model]

但这缺少列名和订阅不接受此代码。

这是预期结果的图像,尽管查询是 TSQL 而不是预期的 MDX/DAX。

sql - 使用 MDX 或 DAX 列出两个维度的交叉连接-LMLPHP

最佳答案

我不确定我是否完全理解您的问题,但要获得交叉连接,您可以使用以下代码

select non empty
{[Date].[Program Year].Children,[Plan].[Auto Assignment County].Children}
on 0,
from [Model]

无需使用行轴,因为您只需要一个交叉连接

编辑:基于图像
with
member measures.t
as
[Date].[Program Year].currentmember.name + '_'+ [Plan].[Auto Assignment County].currentmember.name

select measures.t on 0,
non empty
([Date].[Program Year].Children,[Plan].[Auto Assignment County].Children)
on 1,
from [Model]

根据评论编辑
with
member measures.t
as
[Date].[Calendar Year].currentmember.name + '_'+ [Product].[Category].currentmember.name

member measures.t1
as
[Date].[Calendar Year].currentmember.unique_name + '_'+ [Product].[Category].currentmember.unique_name

member measures.t3
as
[Date].[Calendar Year].currentmember.unique_name

member measures.t4
as
[Product].[Category].currentmember.unique_name

select {measures.t3,measures.t4,measures.t,measures.t1}
 on 0,
non empty
([Date].[Calendar Year].Children,[Product].[Category].Children)
on 1
from [Adventure Works]

结果
sql - 使用 MDX 或 DAX 列出两个维度的交叉连接-LMLPHP

关于sql - 使用 MDX 或 DAX 列出两个维度的交叉连接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55941954/

10-13 07:38