Ssas MDX中的分页
我是MDX的新手,目前正在这方面苦苦挣扎。在如何根据WHERE条款获得客户总数方面,我急需帮助。请看下面我的问题。我正在尝试实现分页,所以我需要总计数来获得要显示的页数。可能吗Ssas MDX中的分页,ssas,mdx,Ssas,Mdx,我是MDX的新手,目前正在这方面苦苦挣扎。在如何根据WHERE条款获得客户总数方面,我急需帮助。请看下面我的问题。我正在尝试实现分页,所以我需要总计数来获得要显示的页数。可能吗 WITH MEMBER [Measures].[DS_TY] AS '([Transaction Type].[All Transaction Type].[Daily Sales], [Measures].[TY])' MEMBER [Measures].[ST_TY] AS '([Transaction
WITH
MEMBER [Measures].[DS_TY] AS
'([Transaction Type].[All Transaction Type].[Daily Sales], [Measures].[TY])'
MEMBER [Measures].[ST_TY] AS
'([Transaction Type].[All Transaction Type].[Stock Transfer], [Measures].[TY])'
MEMBER [Measures].[IS_TY] AS
'([Transaction Type].[All Transaction Type].[IServ], [Measures].[TY])'
MEMBER [Measures].[TOT_TY] AS
'([Transaction Type].[All Transaction Type], [Measures].[TY])'
MEMBER [Measures].[DS_LY] AS
'([Transaction Type].[All Transaction Type].[Daily Sales], [Measures].[LY])'
MEMBER [Measures].[ST_LY] AS
'([Transaction Type].[All Transaction Type].[Stock Transfer], [Measures].[LY])'
MEMBER [Measures].[IS_LY] AS
'([Transaction Type].[All Transaction Type].[IServ], [Measures].[LY])'
MEMBER [Measures].[TOT_LY] AS
'([Transaction Type].[All Transaction Type], [Measures].[LY])'
MEMBER [Measures].[2] AS
'iif([LY]=0 Or [LY]=Null, Null, ([TY] - [LY])/[LY])'
MEMBER [Measures].[4] AS
'[1] - [TY]'
MEMBER [Measures].[6] AS
'[5] - [TY]'
SET smeasures AS
'{[DS_TY],[ST_TY],[IS_TY],[TOT_TY],[DS_LY],[ST_LY],[IS_LY],[TOT_LY],[1],[2],[3],[4],[5],[6]}'
MEMBER [Measures].[TY] AS
'[Measures].[Gross Up Sales YTDTY Amt (Allocation)]'
MEMBER [Measures].[LY] AS
'[Measures].[Gross Up Sales YTDLY Amt (Allocation)]'
MEMBER [Measures].[1] AS
'[Measures].[Quota Amt YTDTY (Allocation)]'
MEMBER [Measures].[3] AS
'[Measures].[%Perf YTDTY GrossUp (Allocation)]'
MEMBER [Measures].[5] AS
'[Measures].[Quota Annual Amt TY (Allocation)]'
SELECT smeasures ON COLUMNS,
NON EMPTY ORDER (
{
[Client Customer].[Client Customer].[Customer].members
},
[Client Customer].currentmember.name,
basc
) ON ROWS
FROM [CClient]
WHERE (
{
[Time].[Time].[Year].[2020].[November]
},
[Transaction Type].[All Transaction Type],
{[Client Org].[Level 02]}-
DESCENDANTS({[Client Org].&[D2_BTR2099_01], [Client Org].&[D2_DTR2099_99], [Client Org].&[D2_GTR2099_02]})
)
提前谢谢你 您需要使用子集进行分页。让我带你看一个例子。它基于Microsoft AdventureWorks 所以我想看看2012年法国所有产品的互联网销售额
select {[Measures].[Internet Sales Amount]}on 0,
order (
filter({[Product].[Product].[Product]},[Measures].[Internet Sales Amount]>0)
,[Measures].[Internet Sales Amount],desc)
on 1
from
[Adventure Works]
where
([Date].[Calendar Year].&[2012],[Geography].[Country].&[France])
这个结果是
这是94行,因为标头也被计数,所以SSMS显示95行
现在,让我们更改查询,只返回行数,而不返回实际行数。为此,我们使用一个计算的度量值,它将具有行轴的整个集合表达式。然后我们将计数函数应用于此
---total Row Count
with member
Measures.ResultSetCount
as
(filter({[Product].[Product].[Product]},[Measures].[Internet Sales Amount]>0)).count
select Measures.ResultSetCount on 0
from [Adventure Works]
where
([Date].[Calendar Year].&[2012],[Geography].[Country].&[France])
我们现在知道我们有94排。现在让我们以10页的形式返回它们
------Paging
select {[Measures].[Internet Sales Amount]}on 0,
subset(
order (
filter({[Product].[Product].[Product]},[Measures].[Internet Sales Amount]>0)
,[Measures].[Internet Sales Amount],desc)
,0,10)
on 1
from
[Adventure Works]
where
([Date].[Calendar Year].&[2012],[Geography].[Country].&[France])
结果是,对于第1页,将“0”替换为1,在“0,10)”中的10之前,您将有第2页,依此类推