如何使用 MDX 查询指定日期范围
How to use MDX query to specify date range
我最近尝试在 Power BI 中使用 MDX 查询直接从 SAP 业务仓库多维数据集查询信息。我遇到一条错误消息,我不知道如何解决。错误信息是:"SAP Business Warehouse: Specify a value for variable Day Interval"
在报告中,必须选择日期范围。如果我单击使用 Power BI 到 SAP BW 连接器,其中一个步骤如下面的屏幕截图所示:
日期在名为 [0CALDAY]
的多维数据集中,使用 [0CALDAY].[20101107]
指定
但是,如果我使用 MDX 使用以下代码查询类似数据
select {[Measures].[00O2THVIBBMJV8JIFLLW439K8]} on columns
from [0PT_MP01/Y_PT_TM_Q001_BOBJ]
where {[0CALDAY].[20101101]: [0CALDAY].[20101110]}
并单击“确定”,我将收到消息说:"SAP Business Warehouse: Specify a value for variable Day Interval"。我对此的理解是无法识别我选择日期间隔的方式?
我也试过在[20101101]
前面使用&
来做这样的东西:[0CALDAY].&[20101101]
(根据网上的一些介绍),然后我收到语法错误信息。
我可以用查询语言做些什么吗?我需要将数字转换为日期类型吗?我是 MDX 和 Cube 的新手,非常感谢任何建议。
谢谢
您需要在查询末尾添加一个 SAP 变量。
为此,您可以通过以下方式添加 SAP 变量:
SAP VARIABLES [<technical name of variable>] INCLUDING <value for variable>
您的查询最终将如下所示:
select
{
[Measures].[00O2THVIBBMJV8JIFLLW439K8]
} on columns
from
[0PT_MP01/Y_PT_TM_Q001_BOBJ]
sap variables
[0CALDAY] including "20101101":"20101110"
请在此处查找更多信息:
https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=356124639
https://blogs.sap.com/2005/06/08/quick-help-in-creating-mdx-statement/
我举个例子来帮助解释强制性 SAP 变量的用法:
SELECT { [Measures].[measure1_name], [Measures].[measure2_name] } 在列上,非空 { [dimension1_name].[ LEVEL01].MEMBERS,[dimension2_name].[LEVEL01].MEMBERS } 来自 [BExQuery_name] SAP 变量 [!V000001] 的行,包括 [dimension1_name].[80000000103] [!V000004] 包括 [0CALDAY].[20130101]:[0CALDAY].[20130104]
!V000001 和 !V000004 是 BEx 变量。
80000000103 是 "dimension1_name" 的示例值。 20130101 和 20130104 是 0CALDAY 的样本范围。
我最近尝试在 Power BI 中使用 MDX 查询直接从 SAP 业务仓库多维数据集查询信息。我遇到一条错误消息,我不知道如何解决。错误信息是:"SAP Business Warehouse: Specify a value for variable Day Interval"
在报告中,必须选择日期范围。如果我单击使用 Power BI 到 SAP BW 连接器,其中一个步骤如下面的屏幕截图所示:
日期在名为 [0CALDAY]
的多维数据集中,使用 [0CALDAY].[20101107]
但是,如果我使用 MDX 使用以下代码查询类似数据
select {[Measures].[00O2THVIBBMJV8JIFLLW439K8]} on columns
from [0PT_MP01/Y_PT_TM_Q001_BOBJ]
where {[0CALDAY].[20101101]: [0CALDAY].[20101110]}
并单击“确定”,我将收到消息说:"SAP Business Warehouse: Specify a value for variable Day Interval"。我对此的理解是无法识别我选择日期间隔的方式?
我也试过在[20101101]
前面使用&
来做这样的东西:[0CALDAY].&[20101101]
(根据网上的一些介绍),然后我收到语法错误信息。
我可以用查询语言做些什么吗?我需要将数字转换为日期类型吗?我是 MDX 和 Cube 的新手,非常感谢任何建议。
谢谢
您需要在查询末尾添加一个 SAP 变量。
为此,您可以通过以下方式添加 SAP 变量:
SAP VARIABLES [<technical name of variable>] INCLUDING <value for variable>
您的查询最终将如下所示:
select
{
[Measures].[00O2THVIBBMJV8JIFLLW439K8]
} on columns
from
[0PT_MP01/Y_PT_TM_Q001_BOBJ]
sap variables
[0CALDAY] including "20101101":"20101110"
请在此处查找更多信息: https://wiki.scn.sap.com/wiki/pages/viewpage.action?pageId=356124639 https://blogs.sap.com/2005/06/08/quick-help-in-creating-mdx-statement/
我举个例子来帮助解释强制性 SAP 变量的用法:
SELECT { [Measures].[measure1_name], [Measures].[measure2_name] } 在列上,非空 { [dimension1_name].[ LEVEL01].MEMBERS,[dimension2_name].[LEVEL01].MEMBERS } 来自 [BExQuery_name] SAP 变量 [!V000001] 的行,包括 [dimension1_name].[80000000103] [!V000004] 包括 [0CALDAY].[20130101]:[0CALDAY].[20130104]
!V000001 和 !V000004 是 BEx 变量。
80000000103 是 "dimension1_name" 的示例值。 20130101 和 20130104 是 0CALDAY 的样本范围。