Вы находитесь на странице: 1из 10

*** Members - The concrete value of a dimension (e.g.

Paris) is a member of the


dimension and is similar to the value of an SQL table.

*** tuples ()- In the Excel sheet a cell is identified by A1, A2, A3, B1, B2, B3,
etc. Here A represents a coordinate from the columns and 1 represents a coordinate
from the rows. We put these together and we can uniquely identify a cell in the
sheet. Here A1, B1 are examples of tuples. In a OLAP cube there are many dimensions
and a tuple is defined as a list of a single hierarchy member taken from all the
dimensions (e.g. [New York], [2009]). The net effect is the same.

*** Sets {}- are an ordered collection of 0 or more tuples (note that a member is
considered to be a tuple containing a single element) with the same
dimensionality.Sets are defined using curled brackets:
{ [Geography].[Geo].[Europe].[Switzerland], [Geography].[Geo].[Europe].[France] }
Members of a set must be from the same hierarchy.

*** current member & default member can not be used with hierarchy levels.it will
through error: ex
[ds_emp_hcatlog].[H_ds_emp_hcatlog].currentmember -- this will work
[ds_emp_hcatlog].[H_ds_emp_hcatlog].deptname.currentmember -- this won't work

***

### allmembers = it is used to get the all values of any dimension attributes. eg.

WITH MEMBER [Measures].[test] AS


iif(
([Listing Current].[Current OLB Status Flag].CurrentMember.name = 'OLB') or
([Listing Current].[Current OLB Status Flag].CurrentMember is [Listing Current].
[Current OLB Status Flag].DefaultMember),
[Measures].[Gross Property Nights]/([Listing Current].[Current OLB Status
Flag].DefaultMember,[Measures].[Booking Request Nights]),
null)
select
[Measures].[test] on columns,
[Listing Current].[Current OLB Status Flag].allmembers on rows
from [Retail Stay Demand_Dev_Optimized_Final_MR]

To handle special character at UI i.e. divide by zero issue:


------------------------------------------------------------
IIF((isEmpty([Measures].[AFTER])) or ([Measures].[AFTER]='') or ([Measures].[AFTER]
= 0),0,
[Measures].[TotalNetValue]/[Measures].[AFTER] - 1)

AFTER FUNCTION AS IN QLIKVIEW:


------------------------------
iif(
[OrderFY].[H_OrderFY].CurrentMember is [OrderFY].[H_OrderFY].DefaultMember
, ([Measures].[TotalNetValue] - ( [OrderFY].[H_OrderFY].[OrderFY].firstmember,
[Measures].[TotalNetValue]))
, iif(
[OrderFY].[H_OrderFY].CurrentMember is [OrderFY].[H_OrderFY].[OrderFY].LastMember
or [OrderFY].[H_OrderFY].CurrentMember is [OrderFY].[H_OrderFY].DefaultMember
, NULL
, Sum([OrderFY].[H_OrderFY].CurrentMember.nextMember,[Measures].[TotalNetValue])))

OR (To execute from dataset below query)


WITH MEMBER [Measures].[Total Sales] AS
iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, ([Measures].[Euro per Sqm] - ( [ActualShippingFY].[H_ActualShippingFY].
[ActualShippingFY].firstmember, [Measures].[Euro per Sqm]))
, iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].[ActualShippingFY].LastMember
or [ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, NULL
, Sum([ActualShippingFY].[H_ActualShippingFY].CurrentMember.nextMember,[Measures].
[Euro per Sqm])))
SELECT {[Measures].[Total Sales],[Measures].[Euro per Sqm]} on columns,
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY] on rows
From [Budget]

OR

WITH MEMBER [Measures].[Total Sales] AS


iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, ([Measures].[Euro per Sqm] - ( [ActualShippingFY].[H_ActualShippingFY].
[ActualShippingFY].firstmember, [Measures].[Euro per Sqm]))
, iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].[ActualShippingFY].firstmember
or [ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, NULL
, Sum([ActualShippingFY].[H_ActualShippingFY].CurrentMember.previousmember,
[Measures].[Euro per Sqm])))
SELECT {[Measures].[Total Sales],[Measures].[Euro per Sqm]} on columns,
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY] on rows
From [Budget]

This is latest one.:


WITH MEMBER [Measures].[Total Sales] AS
iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, ([Measures].[TotalNetValue] - ( [ActualShippingFY].[H_ActualShippingFY].
[ActualShippingFY].LastMember, [Measures].[TotalNetValue]))
, iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].[ActualShippingFY].firstmember
or [ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, NULL
, Sum([ActualShippingFY].[H_ActualShippingFY].CurrentMember.previousmember,
[Measures].[TotalNetValue])))
SELECT {[Measures].[Total Sales],[Measures].[Euro per Sqm]} on columns,
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY] on rows
From [Budget]
Subquery in from clause:
------------------------
WITH MEMBER [Measures].[Total Sales] AS
iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, ([Measures].[TotalNetValue] - ( [ActualShippingFY].[H_ActualShippingFY].
[ActualShippingFY].LastMember, [Measures].[TotalNetValue]))
, iif(
[ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].[ActualShippingFY].firstmember
or [ActualShippingFY].[H_ActualShippingFY].CurrentMember is [ActualShippingFY].
[H_ActualShippingFY].DefaultMember
, NULL
, Sum([ActualShippingFY].[H_ActualShippingFY].CurrentMember.previousmember,
[Measures].[TotalNetValue])))
SELECT {[Measures].[Total Sales],[Measures].[TotalNetValue]} on columns,
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY] on rows
From
( Select {[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY].[1],
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY].[3],
[ActualShippingFY].[H_ActualShippingFY].[ActualShippingFY].[5]} on rows from
[Budget])

Practice:
---------
Select [Measures].[Throughput_time] on columns From [cube_cimpress]

Select [Measures].[Units Ordered] on columns,


[OrderFY].[H_OrderFY].[OrderFY] on rows
From [Budget]

Select [Measures].[Units Ordered] on columns,


Lag([OrderFY].[H_OrderFY].[OrderFY].[3],1) on rows
From [Budget]

Select [Measures].[Units Ordered] on columns,


Firstmember([OrderFY].[H_OrderFY].[OrderFY]) on rows --- this
function takes level only
From [Budget]

Select [Measures].[Units Ordered] on columns,


Nextmember([OrderFY].[H_OrderFY].[OrderFY].[1]) on rows --- this function takes
member only, Here member means values of LEVEL
From [Budget]

OR

select
[Measures].[empid] on columns,
{[ds_emp_hcatlog].[H_ds_emp_hcatlog].[deptname].[1].nextmember,[ds_emp_hcatlog].
[H_ds_emp_hcatlog].[deptname].[1]} on rows
from [cube_emp_hcatlog]

Select [Measures].[Units Ordered] on columns,


lastmember([OrderFY].[H_OrderFY].[OrderFY]) on rows
--- this function takes level only
From [Budget]

WITH MEMBER [Measures].[Total Sales] AS


[Measures].[Materialsqm] + [Measures].[MaterialCoversqm]
SELECT [Measures].[Total Sales] on columns,
Lag([OrderFY].[H_OrderFY].[OrderFY].[3],1) on rows --- this
function takes member only Here member means values of LEVEL
From [Budget]

WITH MEMBER [Measures].[Total Sales] AS


[Measures].[Materialsqm] + [Measures].[MaterialCoversqm] / ([Measures].
[Materialsqm] + [Measures].[MaterialCoversqm])
SELECT [Measures].[Total Sales] on columns,
[OrderFY].[H_OrderFY].[OrderFY] on rows
From [Budget]

WITH MEMBER [Measures].[Total Sales] AS


This is not working ...without lag is working...
[Measures].[TotalNetValue] / lag([Measures].[TotalNetValue].[3],1)
SELECT [Measures].[Total Sales] on columns,
[OrderFY].[H_OrderFY].[OrderFY] on rows
From [Budget]

With member [Measures].[abc] as�


iif([OrderFY].[H_OrderFY].CurrentMember is [OrderFY].[H_OrderFY].
[OrderFY].lastmember , NULL ,�
Sum([OrderFY].[H_OrderFY].CurrentMember.nextMember ,[Measures].[Units Ordered]))�
select���
{ [Measures].[abc],[Measures].[Units Ordered]} on columns,�
[OrderFY].[H_OrderFY].[OrderFY] on rows�
�from� [Budget]�

WITH MEMBER [Measures].[test] AS


iif( [Product].[H_Product].currentmember.LEVEL_NUMBER = 1 OR [Product].
[H_Product].currentmember.LEVEL_NUMBER = 0
,[Measures].[Max Buyer Distinct Count],
[Measures].[Buyer Distinct Count])
select
[Measures].[test] on columns,
DRILLDOWNLEVEL( DRILLDOWNLEVEL([Product].[H_Product].[Hierarchy.ALL].[0]),
[Product].[H_Product].[Product Category])

Surcharge_NonAdd:
case when ISALL([Rate Types].[H_Rate].currentmember) then 0
when [Rate Types].[H_Rate]. CURRENTMEMBER.MEMBERVALUE= 'JFK' then 15
when [Rate Types].[H_Rate]. CURRENTMEMBER.MEMBERVALUE= 'Newark' then 10 else 0 end

iif ((([PRODUCT].[Product Name].currentmember is [PRODUCT].[Product


Name].&[ILLUSTRATOR]
OR [PRODUCT].[Product Name].currentmember is [PRODUCT].[Product Name].&[ACROBAT]
OR [PRODUCT].[Product Name].currentmember is [PRODUCT].[Product Name].&[PHOTOSHOP])
AND [EVENTS].[H_EVENTS].currentmember is [EVENTS].[H_EVENTS].
[event_category].&[MAU]),[Measures].[Active Days By Products],0)

Window function:
----------------
iif([Measures].[empid] = null ,null ,([Deptno_Dim].[deptno].CurrentMember,
[Empid_Dim].[empid].DefaultMember,[Measures].[empid]))
Avg_Function Implementation for walgreens: Ignore blank/null/etc
------------------------------------------
iif([avg_sum_cal_for_null_etc].[H_avg_sum_cal_for_null_etc].CurrentMember is
[avg_sum_cal_for_null_etc].[H_avg_sum_cal_for_null_etc].DefaultMember ,
Sum(Filter([avg_sum_cal_for_null_etc].[H_avg_sum_cal_for_null_etc].
[Avg_Without_Null_etc] , [avg_sum_cal_for_null_etc].
[H_avg_sum_cal_for_null_etc].CurrentMember.name = "Y"),[Measures].
[sal_sum])/Count(Filter([avg_sum_cal_for_null_etc].[H_avg_sum_cal_for_null_etc].
[Avg_Without_Null_etc] , [avg_sum_cal_for_null_etc].
[H_avg_sum_cal_for_null_etc].CurrentMember.name = "Y")) , [Measures].[sal_avg])

***********************************************************************************
************************

HomeAway:
---------
To calculate Gross Acceptance rate:

Logic:

If "Current OLB Status Flag" = "OLB" then [Gross Property Nights] / total of
[Measures].[Booking Request Nights]
else if it is ALL then [Gross Property Nights] / total of [Measures].[Booking
Request Nights]
else "NULL"

iif(
([Listing Point In Time].[OLB Status Flag].CurrentMember.name = 'OLB'),
[Measures].[Gross Property Nights]/([Listing Point In Time].[OLB Status
Flag].DefaultMember,[Measures].[Booking Request Nights]),
iif(([Listing Point In Time].[OLB Status Flag].CurrentMember is [Listing Point In
Time].[OLB Status Flag].DefaultMember),
([Listing Point In Time].[OLB Status Flag].&[OLB],[Measures].[Gross Property
Nights])/([Listing Point In Time].[OLB Status Flag].DefaultMember,[Measures].
[Booking Request Nights]),
null))

***********************************************************************************
************************
UBS:
----
Folder - Pradeep
cube Name - cube_emp_hcatlog

### Ancestor - A function that returns the ancestor of a specified member at a


specified level or at a specified distance from the member.

with member [Measures].[x] as Ancestor([DOB].[H_DOB].currentmember,


[DOB].[H_DOB].[Year])
select {[Measures].[sal],[Measures].[x]}
on columns,
[DOB].[H_DOB].[Year]
on rows
from [cube_emp_hcatlog]

### Case
with member [TEST]
as CASE
WHEN [reason].[r_reason_desc].currentmember.membervalue="Did not fit" THEN 'SIZE
ISSUE'
WHEN [reason].[r_reason_desc].currentmember.membervalue="Did not get it on time"
THEN 'TIME ISSUE'
ELSE 'OTHER'
END
select
{[Measures].[ss_ext_wholesale_cost_SUM],[TEST] }
on columns,
[reason].[r_reason_desc].allmembers
on rows
from [StoreSalesReturnsV29]

### Currentmember

with member [Measures].[Column_1]


as iif ([ds_emp_hcatlog].[gender].currentmember.membervalue="M",'Male','Female')

select
{[Measures].[empid],[Measures].[Column_1]}
on columns,
[Empid_Dim].[empid] on rows
from [cube_emp_hcatlog]

### Empty

WITH MEMBER [Measures].[Column_1] AS


IsEmpty([Measures].[sal])
SELECT {[Measures].[sal],[Measures].[Column_1]} ON columns,
[Empid_Dim].[empid].members ON rows
FROM [cube_emp_hcatlog]

### Firstchild

select
[Measures].[sal] on columns,
FIRSTCHILD([DOB].[H_DOB].[Year].&[1952]) on rows
from [cube_emp_hcatlog]

### Lag

select
[Measures].[ss_ext_wholesale_cost_SUM]
on columns,
LAG([date_dim].[H_date_dim].[d_year].&[2001],2)
on rows
from [StoreSalesReturnsV29]

### Lastchild

select
[Measures].[sal] on columns,
LASTCHILD([DOB].[H_DOB].[Year].&[1952]) on rows
from [cube_emp_hcatlog]

### Level
with member [Measures].[Column_1]
as LEVEL_NUMBER([DOB].[H_DOB].[Quarter].&[1952]&[2])
select
{[Measures].[sal],[Measures].[Column_1]} on columns,
[DOB].[H_DOB].[Year] on rows
from [cube_emp_hcatlog]

### Multiplication

with member [Measures].[ss_ext_wholesale_cost_SUM1]


as [Measures].[ss_ext_wholesale_cost_SUM] *2
select
{[Measures].[ss_ext_wholesale_cost_SUM],
[Measures].[ss_ext_wholesale_cost_SUM1] }
on columns,
[reason].[r_reason_desc].allmembers on rows
from [StoreSalesReturnsV29]

### PREVIOUSMEMBER

select
[Measures].[ss_ext_wholesale_cost_SUM]
on columns,
PREVIOUSMEMBER([date_dim].[H_date_dim].[d_year].&[2001])
on rows
from [StoreSalesReturnsV29]

### Rank

RANK([Calendar].[Calendar].CURRENTMEMBER, [Calendar].[Calendar].[Calendar Week of


Year] , [Measures].[Amount])

with member [Measures].[Column_1]


as RANK([Empid_Dim].[empid].CURRENTMEMBER, [Empid_Dim].[empid].MEMBERS ,
[Measures].[sal])
select
{[Measures].[sal],[Measures].[Column_1]}
on columns,
[Empid_Dim].[empid].allmembers
on rows
from [cube_emp_hcatlog]

### Nonempty - Returns the set of tuples that are not empty from a specified set,
based on the cross product of the specified set with a second set.

SELECT [Measures].[sal] ON 0,
NONEMPTY(
[Empid_Dim].[empid].members
, {([DOB].[H_DOB].[Day].&[1960]&[2]&[5]&[1], [Measures].[sal])}
) ON 1
FROM [cube_emp_hcatlog]

### Operator (+,-,~) based mdx expression:

iif([Viewing by Channel].[Category].currentmember is [Viewing by Channel].


[Category].&[LiveTV], -1 * [Measures].[Shows Watched],
iif([Viewing by Channel].[Category].currentmember is [Viewing by Channel].
[Category].DefaultMember,
SUM([Viewing by Channel].[Category].[Category].members, iif([Viewing by Channel].
[Category].currentmember is [Viewing by Channel].[Category].&[LiveTV], -1 *
[Measures].[Shows Watched], [Measures].[Shows Watched])),[Measures].[Shows
Watched]))

### Parellel calculation with time dimension

((([External Account].[H_External Account].[Level


6].&[N00000]&[N00005]&[N30336]&[N30335]&[N30446]&[N30334] ,
[Measures].[Measure])
- ([External Account].[H_External Account].[Level
6].&[N00000]&[N00005]&[N30336]&[N30335]&[N30446]&[N30334] ,
[Measures].[Measure],
PARALLELPERIOD([Period Dimension].[H_Period Dimension].[Year] , 1, [Period
Dimension].[H_Period Dimension].CurrentMember))
)/(
([External Account].[H_External Account].[Level
6].&[N00000]&[N00005]&[N30336]&[N30335]&[N30446]&[N30334] ,
[Measures].[Measure],
PARALLELPERIOD([Period Dimension].[H_Period Dimension].[Year] , 1, [Period
Dimension].[H_Period Dimension].CurrentMember)
))) * (-100)

### UBS jianngs case -- See the email to understand requirement...


iif([MDNA_ACCT_DIM_KPI].[H_MDNA_ACCT_DIM_KPI].members is [MDNA_ACCT_DIM_KPI].
[L_W_1].currentmember,sum([MDNA_ACCT_DIM_KPI].[H_MDNA_ACCT_DIM_KPI].[L1].members,
[Measures].[Amount]),null)

OR

iif([COB].[H_COB].members is [COB].[other_date_attr].currentmember,sum([COB].
[H_COB].members,[Measures].[Amount]),null)

### UBS Wighted rollup


iif([View_Dim].[H_View_Dim].currentmember.level_number = 0,sum([View_Dim].
[H_View_Dim].currentmember.children,[Measures].[View_WeightedAmount] * [Measures].
[level1_weight]),
iif([View_Dim].[H_View_Dim].currentmember.level_number = 1,sum([View_Dim].
[H_View_Dim].currentmember.children,[Measures].[View_WeightedAmount] * [Measures].
[level2_weight]),
iif([View_Dim].[H_View_Dim].currentmember.level_number = 2,sum([View_Dim].
[H_View_Dim].currentmember.children,[Measures].[View_WeightedAmount] * [Measures].
[level3_weight]),
iif([View_Dim].[H_View_Dim].currentmember.level_number = 3,sum([View_Dim].
[H_View_Dim].currentmember.children,[Measures].[View_WeightedAmount] * [Measures].
[level4_weight]),
iif([View_Dim].[H_View_Dim].currentmember.level_number = 4,[Measures].
[Amount],null)))))

### Credit Suisse - Variance Requirement

Dynamic:
--------
iif(count(GetFilterInfo([Time].[Time])) = 2,
(GetFilterInfo([Time].[Time]).item(1).item(0) -
GetFilterInfo([Time].[Time]).item(0).item(0)),
null)

Static: Using system variable


-------
STRTOMEMBER("[Time].[Time].[COB_Date].&["+
[dateCS].[H_dateCS].[date].item(0).item(0).name +"]")
- STRTOMEMBER("[Time].[Time].[COB_Date].&["+
[dateCS].[H_dateCS].[date].item(0).item(0).name +"]").previousMember

Tracfone POC:
-------------
### UDMP
iif( [Time_Today].[H_Time_Today].CurrentMember.Properties("run_rate_ratio") = "31"
,[Measures].[Reactivation]
,0)

iif(
[Time_Today].[H_Time_Today].currentmember.level_number = 4
,iif
([Measures].[Gross Adds] <> 0
, [Time_Today].[H_Time_Today].CurrentMember.Properties("run_rate_ratio")
,0)
,0)

### To get current & previous using calculated member.

CurrentYear:
LASTCHILD([TIME_TODAY].[H_Time_Today].currentmember)

PreviousYear:
LASTCHILD([TIME_TODAY].[H_Time_Today].currentmember).previousmember

CurrentQuarter:
LASTMEMBER([TIME_TODAY].[H_Time_Today].[Quarter])

OR

tail(NONEMPTY([Dates].[Date Y_Q_M_W_D].[Quarter].members)).item(0).item(0)

PreviousQuarter:
LASTMEMBER([TIME_TODAY].[H_Time_Today].[Quarter]).previousmember

OR

tail(NONEMPTY([Dates].[Date Y_Q_M_W_D].
[Quarter].members)).item(0).item(0).previousmember

CurrentMonth:
LASTMEMBER([TIME_TODAY].[H_Time_Today].[Month])

PreviousMonth:
LASTMEMBER([TIME_TODAY].[H_Time_Today].[Month]).previousmember

----------------

getmember([TIME_TODAY].[H_Time_Today].[Year],'1997')

STRTOMEMBER("[TIME_TODAY].[H_Time_Today].[Year].&[�+FORMAT(NOW(), 'YYYY')+�]�)
getmember([TIME_TODAY].[H_Time_Today].[Year],FORMAT(NOW(), 'YYYY'))

Вам также может понравиться