使用Adventureworks 2008多维数据集,我试图构建一个MDX查询,该查询将返回没有特定原因代码的互联网订单计数。
FactInternetSales在FactInternetSalesReason上有很多很多。每次销售都有一个或多个理由代码。
如果我试图返回没有使用"On促销“原因的订单,我仍然会得到计数中包含的on促销命令,因为它们还有其他原因。
我如何写MDX来说明如果这个订单有这个原因,不要将它包含在计数中,而不考虑任何其他原因?
与adventure数据仓库对应的等效SQL为:
select count(distinct salesordernumber) from FactInternetSales
where not exists (select salesorderNumber
from FactInternetSalesReason
where SalesReasonKey = 2
and FactInternetSales.SalesOrderNumber = FactInternetSalesReason.SalesOrderNumber
)发布于 2014-10-29 23:19:43
这是互联网订单计数:
SELECT
{
[Measures].[Internet Order Count]
} ON 0
FROM [Adventure Works];这是互联网订单,但不包括促销活动:
SELECT
{
[Measures].[Internet Order Count]
} ON 0
FROM [Adventure Works]
WHERE
Except
(
[Sales Reason].[Sales Reason].[Sales Reason]
,[Sales Reason].[Sales Reason].[On Promotion]
);以下是将这些排除情况转化为具体措施:
WITH
MEMBER [Measures].[Internet Order Count OnPromotion] AS
(
[Measures].[Internet Order Count]
,[Sales Reason].[Sales Reason].[On Promotion]
)
MEMBER [Measures].[Internet Order Count excl OnPromotion] AS
[Measures].[Internet Order Count]
-
[Measures].[Internet Order Count OnPromotion]
SELECT
{[Date].[Calendar].[(All)]} ON 0
,{
[Measures].[Internet Order Count]
,[Measures].[Internet Order Count OnPromotion]
,[Measures].[Internet Order Count excl OnPromotion]
} ON 1
FROM [Adventure Works];https://stackoverflow.com/questions/26638568
复制相似问题