Select
Filter (
[ Product ] . [ Category ] . Members,
[ Measures ] . [ Dollar sales ] > 900000 // And [ Measures ] . [ Unit sales ] > 90000
)
On Axis ( 0 )
From Sales
Where ( [ Time ] . [ 2005 ] , [ Measures ] . [ Dollar sales ] )
The query result is:
Select
Filter (
[ Product ] . [ Category ] . Members,
[ Measures ] . [ Dollar sales ] > 900000 And [ Measures ] . [ Unit sales ] > 90000
)
On Axis ( 0 )
From Sales
Where ( [ Time ] . [ 2005 ] , [ Measures ] . [ Dollar sales ] )
The query result is:
Why does the filter function only return all after the and [measures]. [unit sales]> 90000 condition is added? Can the filter function only use one condition?
Select
Filter (
[ Product ] . [ Category ] . Members,
[ Measures ] . [ Dollar sales ] > 1.4 *
( [ Measures ] . [ Dollar sales ] ,
[ Time ] . [ Yqmd ] . Currentmember. prevmember
)
)
On Axis ( 0 )
From Sales
Where ( [ Time ].[Yqmd] . [ 2005 ] , [ Measures ] . [ Dollar sales ] )
Because the time member of the context is [2005], the previous time member should be [2005], that is, [time]. [yqmd]. currentmember. prevmember is [2004].
Because the context is from each dimension Retrieve a member Put it into it, so you can rely more on it in the expression for query. The following query is the same as the previous query results, but uses different expressions, because the context in the filter () function contains and uses [measures]. [doolar sales]
1.4 *
( [ Measures ] . [ Dollar sales ] ,
[ Time ] . [ Yqmd ] . Currentmember. prevmember
)
Changed 1.4 * [ Time ] . [ Yqmd ] . Currentmember. prevmember
Select
Filter (
[ Product ] . [ Category ] . Members,
[ Measures ] . [ Dollar sales ] >
1.4 * [ Time ] . [ Yqmd ] . Currentmember. prevmember
)
On Axis ( 0 )
From Sales
Where ( [ Time ].[Yqmd] . [ 2005 ] , [ Measures ] . [ Dollar sales ] )