2013-08-21 29 views
5

In SQL mi piace cercare una colonna per le partite di una particolare stringa utilizzando qualcosa di simile:MDX equivalente a come

SELECT t.attributeNAME 
FROM myTable t 
WHERE t.attributeNAME LIKE '%searchString%' 

potrebbe piacermi da usare che in una tabella temporanea e quindi utilizzare il risultato in successiva sezioni di uno script più in questo modo:

--find the keys 
SELECT t.attributeKEY 
INTO #Temp 
FROM myTable t 
WHERE t.attributeNAMELIKE '%searchString%' 

--use the keys 
SELECT SUM(f.measure) 
FROM myFacts f 
    INNER JOIN #Temp t ON 
    f.attributeKEY = t.attributeKEY 

--use the keys again 
SELECT SUM(F.measure) 
FROM myOtherFacts F 
    INNER JOIN #Temp t ON 
    F.attributeKEY = t.attributeKEY 

esiste un equivalente a questo in MDX? Se ho un'idea di quali elementi di una gerarchia sono in grado di utilizzare in qualche modo un searchString per filtrare a un insieme specifico di elementi?


EDIT

Come sottolineato da Marc Polizzi rispondere sembra instr è molto utile in questa situazione e posso effettuare le seguenti operazioni:

CREATE SET [xCube].[Set_Names] AS 
    {FILTER(
    [xDimension].[xHierarchy].[xLevel].Members, 
    (InStr(1, [xDimension].[xHierarchy].CurrentMember.NAME, "WIL") <> 0) 
     ) 
     } 

GO 

SELECT 
    NON EMPTY 
      [Set_Names] 
    ON ROWS, 
    NON EMPTY 
      [Measures].[x] 
    ON COLUMNS 
FROM [xCube] 

GO 

SELECT 
    NON EMPTY 
      [Set_Names] 
    ON ROWS, 
    NON EMPTY 
      [Measures].[y] 
    ON COLUMNS 
FROM [xCube] 

GO 

SELECT 
    NON EMPTY 
      [Set_Names] 
    ON ROWS, 
    NON EMPTY 
      [Measures].[z] 
    ON COLUMNS 
FROM [xCube] 

risposta

2

si potrebbe essere in grado di utilizzare la funzione Instr anche se non supporta caratteri jolly.

+0

+1 ok - mi permetta di giocare e aggiungi un tentativo di PO Marc. – whytheq

+0

- aggiunto di recente quest'altra domanda MDX Marc: [SO QUESTION] (http://stackoverflow.com/questions/18375416/test-if-a-set-exists-before-trying-to-drop-it?noredirect=1 # comment27019375_18375416) – whytheq

+0

@whytheq: controllato la domanda - non so se è possibile. –