如何使用mdx创建分组维度
我正在尝试使用mdx创建一个bucketing分组。我有一个称为QtyOpen的度量值和一个时间维度 我希望有一个具有以下逻辑的维度: 桶1用于显示截至昨天日期的所有未结数量 Bucket 2用于显示当前日期的所有打开数量 桶3用于显示明天日期的所有打开数量 因此,如果直到昨天的所有OpenQty都是15,今天的所有OpenQty都是7,明天的所有OpenQty都是12,它应该显示如下:如何使用mdx创建分组维度,mdx,Mdx,我正在尝试使用mdx创建一个bucketing分组。我有一个称为QtyOpen的度量值和一个时间维度 我希望有一个具有以下逻辑的维度: 桶1用于显示截至昨天日期的所有未结数量 Bucket 2用于显示当前日期的所有打开数量 桶3用于显示明天日期的所有打开数量 因此,如果直到昨天的所有OpenQty都是15,今天的所有OpenQty都是7,明天的所有OpenQty都是12,它应该显示如下: Bucket 1 | Todays date | Tomorrows date 15
Bucket 1 | Todays date | Tomorrows date
15 7 12
select (
{StrToMember("[Time].[Time YQMD].[Year].&[" + format(now(), "yyyy") + "].&[Q" + format(datepart("q", now())) + "].&[" + format(now(), "MMM") + "].&[" + format(now(), "dd") + "]")
:
StrToMember("[Time].[Time YQMD].[Year].&[" + format(now(), "yyyy") + "].&[Q" + format(datepart("q", now())) + "].&[" + format(now(), "MMM") + "].&[" + format(now(), "dd") + "].lead(3)")}
) on columns,
non empty ([PPV].[Country].[Country], [Measures].Receipt Quantity]) on rows
from [Model]
因此,我成功地获得了我想要的日期范围的语法。对此的查询如下所示:
Bucket 1 | Todays date | Tomorrows date
15 7 12
select (
{StrToMember("[Time].[Time YQMD].[Year].&[" + format(now(), "yyyy") + "].&[Q" + format(datepart("q", now())) + "].&[" + format(now(), "MMM") + "].&[" + format(now(), "dd") + "]")
:
StrToMember("[Time].[Time YQMD].[Year].&[" + format(now(), "yyyy") + "].&[Q" + format(datepart("q", now())) + "].&[" + format(now(), "MMM") + "].&[" + format(now(), "dd") + "].lead(3)")}
) on columns,
non empty ([PPV].[Country].[Country], [Measures].Receipt Quantity]) on rows
from [Model]
这里缺少的是“Bucket 1”,它收集今天之前所有天的OpenQty
我将是一个巨大的奖金,能够使用这个维度的所有措施
谢谢
谢谢你的帮助
谢谢。您需要的是动态时间计算。容易设置,但不是很简单。请参阅此链接,它将帮助您:
您可以在
WITH
子句中执行此操作:
WITH
SET [Today] AS
STRTOSET(
"{[Time].[Time YQMD].[Year].&[" + format(now(), "yyyy") + "]" +
".&[Q" + format(datepart("q", now())) + "]" &
".&[" + format(now(), "MMM") + "].&[" + format(now(), "dd") + "]}"
)
MEMBER [Time].[Time YQMD].[All].[Today] AS
[Today].item(0).item(0)
SET [Pre-Today] AS
{null:[Today].lag(1)}
MEMBER [Time].[Time YQMD].[All].[Pre-Today] AS
AGGREGATE([Pre-Today])
MEMBER [Time].[Time YQMD].[All].[Tomorrow] AS
[Today].item(0).lead(1)
SET [BUCKETS] AS
{
[Time].[Time YQMD].[All].[Pre-Today]
,[Time].[Time YQMD].[All].[Today]
,[Time].[Time YQMD].[All].[Tomorrow]
}
SELECT
[BUCKETS] ON 0,
NON EMPTY
([PPV].[Country].[Country], [Measures].Receipt Quantity]) ON 1
FROM [Model];
应该很简单,但是您可以添加一些您已经尝试过的
mdx
,以便我们了解您的多维数据集中的维度吗?您好。谢谢我用一些我已经开始工作的mdx编辑了消息。