Pct af total

Dette MDX eksempel viser hvordan man kan beregne den aktuelle pct af total salget, og pct af total salget for niveauet over det aktuelle.

WITH 
 MEMBER [Measures].[Pct of total] AS ' 
     SUM( {[Product].CurrentMember}, [Measures].[Unit Sales]) / 
     SUM( {[Product].DefaultMember}, [Measures].[Unit Sales])', 
     FORMAT_STRING='#0.00%' 
 MEMBER [Measures].[Pct of parent total] AS ' 
     IIF( [Product].Parent  NULL, 
     SUM( {[Product].CurrentMember}, [Measures].[Unit Sales]) / 
     SUM( {[Product].Parent.Children}, [Measures].[Unit Sales]), 1)', 
     FORMAT_STRING='#0.00%' 
SELECT 
 { [Measures].[Unit Sales], 
    [Measures].[Pct of Total], 
    [Measures].[Pct of parent total] } ON COLUMNS, 
 NON EMPTY 
    Order( DESCENDANTS( [Product]  ), 
    [Measures].[Pct of total], DESC ) ON ROWS 
FROM 
[Sales]

Loading

Den absolutte værdi

Her er et eksempel på hvordan man beregner den absolutte værdi af et givent Measure.

Code Block

WITH
 MEMBER [Measures].[Neg Profit] AS ‘-1 * [Measures].[Profit]’
 MEMBER [Measures].[Abs Profit] AS ‘ABS([Measures].[Neg Profit])’
SELECT
 {[Measures].[Neg Profit], [Measures].[Abs Profit]} ON COLUMNS,
 NON EMPTY DESCENDANTS( [Customers] ) ON ROWS
FROM
[Sales]

 

Loading

Distinct count on several dimension members

Here is an example on how you can select the distinct count on a combination of product categories.
The example is written for FoodMart 2000

WITH   

SET [Categories] AS ' 
	{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine]} 
	+ 
	{[Product].[All Products].[Drink].[Beverages].[Carbonated Beverages]}'  
MEMBER [Measures].[Count] AS 'SUM( {[Categories]}, [Measures].[Sales Count] )' 
MEMBER [Measures].[Count A] AS 'SUM( 
	{[Product].[All Products].[Drink].[Alcoholic Beverages].[Beer and Wine]}, 
	[Measures].[Sales Count] )' 
MEMBER [Measures].[Count B] AS 'SUM( 
	{[Product].[All Products].[Drink].[Beverages].[Carbonated Beverages]}, 
	[Measures].[Sales Count] )' 
SELECT 
{ [Measures].[Count], [Measures].[Count A], [Measures].[Count B] } ON COLUMNS, 
NON EMPTY DESCENDANTS( [Customers] ) ON ROWS   

FROM   

[Sales]

Loading

Sådan kan man jo blive så kåd…

Var til den famøse certificering i dag, men bestod ikke. Der skulle også have været en god portion hjælp fra opgavestillerne, før det havde rimelige udsigter.

De 53 spørgsmål jeg fik til testen, var tre-delt nogenlunde ligeligt på SSIS, SSAS og SSRS. Dog var der forholdsvis stor fokus på Data Mining og det dertilhørtende DMX. Det er så ikke lige noget jeg har så sulens meget hands on erfaring med. Det gør jo, at syntax spørgsmål pludseligt bliver møg-svære, og umulige at gætte på.

Men hvad… Vi må på den igen en anden dag.

Loading

Mosha, manden med lyset

I dag faldt jeg tilfældigt over en ret så, for mig, brugbar information. Længe har jeg lavet MDX statements, længe har jeg brugt IIF-statements og længe har jeg været irriteret over ikke at kunne returnere ‘N/A’ ved ukendte/ikke-definerede værdier. Det kan man så alligevel. Som skrevet var det lidt tilfældigt, at jeg spottede notationen i en artikel om performance af IIF i MDX af Mosha Pasumansky

Finessen ligger i FORMAT_STRING. Her kan notationen FORMAT_STRING=’#.#;;;NA‘ gøre en verden til forskel. Tak Mosha 🙂

Update: Link updated

Loading