请教下,mdx中怎么传变量的?

0
请教下,mdx中怎么传变量的?SELECT ( STRTOMEMBER(@FromDimDateFullDatekey, CONSTRAINED),像t-sql的declare,这里的@变量怎么弄
已邀请:
0

BIWORK - 热衷于微软BI技术,技术架构和解决方案! 2015-10-08 回答

MDX 不能像 SQL 中那样 DECLARE 声明变量使用。
 
它的参数化查询一般都是和其它工具或者 SSRS 报表这样结合起来的。
你可以参考一下这两篇文章:
微软BI 之SSRS 系列 - 使用带参数的 MDX 查询实现一个分组聚合功能的报表  http://www.flybi.net/blog/biwork/1054
微软BI 之SSRS 系列 - 基于时间段参数的 MDX 查询以及时间日历 Date Picker 的时间类型参数化 http://www.flybi.net/blog/biwork/1058
 
非要像 SQL 那样传参数的话,那就得首先将 MDX 变成 SQL 的一部分,通过 OPENQUERY 来转换。

这是我以前在微软官方论坛回复的帖子你可以试着看一看,但我个人建议不要这么来转换。

Square bracket causes error with MDX members in Derived Column Task
https://social.msdn.microsoft.com/Forums/zh-CN/60ccd497-41b3-4838-b01c-2010b9955133/square-bracket-causes-error-with-mdx-members-in-derived-column-task?forum=sqlintegrationservices
SELECT CAST([[Product]].[Category]].[Category]].[MEMBER_CAPTION]]] AS VARCHAR(50)) AS 'Category',
CAST([[Measures]].[Reseller Sales Amount]]] AS NUMERIC) AS 'Sales Amount'
FROM OPENQUERY(localhost,'
SELECT [Measures].[Reseller Sales Amount] ON COLUMNS,
[Product].[Category].MEMBERS ON ROWS
FROM [Step-by-Step]
WHERE [Date].[Calendar Year].&[2004]')

SELECT "[Product].[Category].[Category].[MEMBER_CAPTION]" AS 'Category',
"[Measures].[Reseller Sales Amount]" AS 'Sales Amount'
FROM OPENQUERY(localhost,'
SELECT [Measures].[Reseller Sales Amount] ON COLUMNS,
[Product].[Category].MEMBERS ON ROWS
FROM [Step-by-Step]
WHERE [Date].[Calendar Year].&[2004]')

要回复问题请先登录注册