Hallo,
mir wäre es neu, das man im (klassichen) Visual Studio eine Datenverbindung zum Analysis Services (SSAS) herstellen kann, das geht nur mit relationalen Datenbanken. Oder arbeitest Du mit dem BIDS Plugin = Business Intelligende Developer Studio?
Abfragen gegen SSAS Cubes werden als MDX Statements erstellt und in MDX gibt es weder Wildcards noch Ähnlichkeitsabfragen. Du kannst nicht einmal beliebige Bereichsabfragen durchführen, sondern nur von Member bis Member (ok, geht schon, aber abhängig
vom
MdxMissingMemberMode gibt es fehlerhafte Ergebnisse oder einen Laufzeitfehler).
Die einzige (Teil-) Möglichkeit, die es gibt, ist die VBA Funktione InStr für eine "beinhaltet" Filterung zu verwenden und ja, es ist wirklich Visual Basic for Applications gemeint; Excel ist als Assembly in SSAS eingebunden.
Wenn Du den AdventureWorks Cube hast, kannst Du es mit folgendem MDX Statement ausprobieren. Über InStr werden die Member Captions auf den Teilstring "erli" geprüft, und über das Ergebnis > 0 für die gefundene Position wird gefiltert.
In Adventureworks werden so alle "Berlin"s und "Oberlin" gefunden. Ich muss aber dazu sagen, das
Filter nicht sehr performant ist, man sollte immer Set-based Lösungen bevorzugen. Und noch etwas, es können nur Funktionen aus VBA verwendet werden, der Like Operator
geht nicht.
SELECT
{[Measures].[Internet Sales Amount]} ON 0
,{[Customer].[Customer Geography].[City]} ON 1
FROM [Adventure Works]
WHERE Filter
([Customer].[City].ALLMEMBERS
,Instr([Customer].[City].CurrentMember.Properties('Member_Caption')
,'erli')
> 0
);
Olaf Helper
* cogito ergo sum * errare humanum est * quote erat demonstrandum *
Wenn ich denke, ist das ein Fehler und das beweise ich täglich
Blog
Xing