gpt4 book ai didi

sql - 按多个维度成员进行 MDX 过滤

转载 作者:行者123 更新时间:2023-12-05 02:22:07 25 4
gpt4 key购买 nike

问题

我需要创建一个报告,其中将列出许多符合特定条件的帐户 - simulationDatestatisticPeriodregion

现在我的查询是这样的:

WITH MEMBER [Measures].[Count] as 1
SELECT [Measures].[Count] ON COLUMNS,
NON EMPTY
Crossjoin(
[Account].[Account Number].ALLMEMBERS,
{[simulationDate].[day].&[10010101]},
{[statisticPeriod].[period].&[201201]},
{[region].[code].&[SO]}
)
ON COLUMNS
FROM [myWH]

这个跨维度过滤行不行?

最佳答案

使用 * 符号代替 Crossjoin 函数稍微更现代一些:

WITH 
MEMBER [Measures].[Count] AS 1
SELECT
[Measures].[Count] ON COLUMNS
,NON EMPTY
[Account].[Account Number].ALLMEMBERS*
{[simulationDate].[day].&[10010101]}*
{[statisticPeriod].[period].&[201201]}*
{[region].[code].&[SO]} ON COLUMNS
FROM [myWH];

我假设您的自定义度量 [Measures].[Count] 只是一个占位符?

如果您在 COLUMNS 上进行交叉连接,则该表将非常宽,但这可能只是一个拼写错误:

WITH 
MEMBER [Measures].[Count] AS 1
SELECT
[Measures].[Count] ON COLUMNS,
NON EMPTY
[Account].[Account Number].ALLMEMBERS*
{[simulationDate].[day].&[10010101]}*
{[statisticPeriod].[period].&[201201]}*
{[region].[code].&[SO]} ON ROWS
FROM [myWH];

您已经在交叉连接的行前面添加了关键字 NON EMPTY。这告诉处理器排除任何空行 - [Measures].[Count] 为空......但此度量从不为空,它始终相等到 1。因此,以下不带 Non Empty 的结果应该返回完全相同的结果:

WITH 
MEMBER [Measures].[Count] AS 1
SELECT
[Measures].[Count] ON COLUMNS,
[Account].[Account Number].ALLMEMBERS*
{[simulationDate].[day].&[10010101]}*
{[statisticPeriod].[period].&[201201]}*
{[region].[code].&[SO]} ON ROWS
FROM [myWH];

那么就过滤而言,您什么也没做——您需要哪种过滤?如果您将 [Measures].[Count] 替换为立方体中的实际度量并使用 NON EMPTY,那么您应该会看到更少的行:

SELECT 
[Measures].[ReplaceWithActualMeasure] ON COLUMNS,
NON EMPTY
[Account].[Account Number].ALLMEMBERS*
{[simulationDate].[day].&[10010101]}*
{[statisticPeriod].[period].&[201201]}*
{[region].[code].&[SO]} ON ROWS
FROM [myWH];

关于sql - 按多个维度成员进行 MDX 过滤,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30940628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com