Jūs varat rakstīt dažadas formulas ismantojot nosacījumus un izvadīt dažadus rezultātus balstoties atblstību nosacījumiem izmantojot IIF ( Ja ) un CASE ( Gadījumā ja) funkcijas. Priekš vienkāršiem IF/THEN /ELSE tipa nosacījumiem izmantojiet IIF(noacījums, ja_nosacījums_pateiss, ja_nosacījums_nepatiess) , ( IIF(condition, if_true_expression, if_false_expression) . Taču ņemiet vērā ka "IIF" satur divus "I" burtus, nevis kāierats IF ! Piemēram IIF(Measures.Profit > 0, 'Profit', 'Loss') t.i ja Measures.Profit būs lielāks par nulli tad rezultāts būs " Profit", ja vērtība neatbildīs nosacījumam un būs mazāka par 0, ta rezultāts būs " Loss" . Ja ir vairāki nosacījumi tad ir vieglāk izmantot CASE funkciju , piemēram šadā gadījumā : CASE WHEN Measures.Profit > 1000 – Kad peļņa ir lielāka par 1000 THEN 'Big profit' -- tad peļņa ir " Liela Peļņa " WHEN Measures.Profit > 0 – kad peļņa ir lielāka par 0 THEN 'Small profit' --tad rezultāts "Maza peļņa" ELSE 'Loss' – citādi rezultāts " Zaudējumi" ( darbosies visām vērtībām kas ir mazākas vai vienādas ar 0 ) END Ja visi nosacījumi ir salīdzinājums vienam un tam pašam nosacījumam, kas attiecas uz dažāda tipa vērtībām, tad var izmantot cita tipa CASE funkcijas fomu .
CASE Time.CurrentMember.Level.Name – Ja Laika dimensijas tekošā rādītāja līmenī Nosaukums WHEN 'Month' – atbilst " Mēnesis" THEN Sum(LastPeriods(3), Measures.Store Sales) – tad summēt pēdējos trīs periodu ( 3 mēnešus) pārdošanas rezultātus WHEN 'Day' – Ja atbilst " Diena " THEN Sum(LastPeriods(90), Measures.Store Sales) – Tad summēt pēdējās 90 dienu ( kas arī ir 3 mēneši) pārdošanas rezultātus END Lietojot IIF un CASE nosacījumus var izmantot standarta salīdzinājuma zīmes (=, <, <=, <>, >, >=) kā arī AND, OR and NOT ( UN, VAI un NAV) operatorus, kā arī vēl dažus papildus specifiskos operatorus : - IS - atgriezīs rezultātā to, vai divi objekti ir vienādi, piemēram, Customers.CurrentMember IS Customers.DefaultMember ( kas būs patiesi, ja Customers tekošais rādītājs ( Current member) ir noklusētais All Customers ( Visi Klienti) rādītājs.
- IN un NOT IN operatori atgriezīs rezultātā vai rādītājs ir iekļauts kādā noteiktā rādītāju kopā, Piemēram Customers.CurrentMember IN Customers.USA.CA.Children , šajā gadījumā vai Klienti tekošais rādītājs ( Current member ) ir no Kanādas klientiem.
|