Professional Microsoft® SQL Server® Analysis Services 2008 with MDX
by Sivakumar Harinath, Matt Carroll, Sethu Meenakshisundaram, Robert Zare, Denny Guang-Yeu Lee
11.1. Built-In UDFs
The MDX language does not support certain common utility functions like performing operations on strings, such as trimming or getting the first substring match, or date operation functions. Such functions are available in the SQL language, and they might be quite useful in MDX queries. Because Visual Basic for Applications (VBA) and Excel contain a rich set of such functions, they are readily available as a COM DLL. Analysis Services 2008 takes advantage of this and exposes certain Excel and VBA functions out-of-the-box.
The VBA functions provided with Analysis Services 2008 come from Microsoft Office. Because Microsoft Office is currently only a 32-bit application but Analysis Services is also available on 64-bit platforms, the Analysis Services team has implemented 64-bit versions of VBA functions. Important functions that can impact performance are implemented natively in a 64-bit COM assembly, while the remaining supported VBA functions are implemented in a .NET assembly.
Calling a user-defined function in MDX is similar to calling a function in most programming languages. You make the call with the function name followed by an opening parenthesis, with each argument in the correct order separated by commas, and finally a closing parenthesis. For example, if you want to get today's date, you can use the VBA function Now(). The following MDX query will retrieve today's date:
WITH MEMBER Measures.[Today's Date] AS 'Now()' SELECT Measures.[Today's Date] ON ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access