Ja vēl neesat iepazinušies ar Standard-BI vispārējo pārskatu, datu analīzes un jaunu atskaišu izveidošanas funkcionalitātes aprakstiem, lūdzu iepazīstieties ar tiem. Šī instrukcija apraksta kā definēt jaunus aprēķināmos rādītājus izmantojot MDX vaicājumu valodas kalkulāciju formulas.
Katra kuba dimensija sastāv no vienas vai vairākām hierarhijām ar vienu vai vairākiem hierarhijas līmeņiem. Katru hierarhijas līmeni savukārt veido dimensiju rādītāji. Eksistē normālie rādītāji, kuri ir importēti no datubāzes failiem vai aplikācijām, taču papildus tiem ir iespējams definēt arī Aprēķināmos rādītājus ( calculated members ) izmantojot kalkulāciju formulas. Kalkulāciju formulas tiek definētas izmantojot MDX vaicājumu valodu.
Eksistē speciāla dimensija Rādītāji ( Measures ), kura satur visus ieimportētos rādītājus ( piemērām : Apgrozījums ( Item base amount) , Atlaides lielums( Discount amount) , Nodokļu lielums( tax amount) u.c ). Aprēķināmie rādītāji ( Calculated members ) visbiežāk tiek definēti tieši Rādītāju dimensijā (Measures dimension) , un tie tiek saukti par Aprēķināmajiem rādītājiem ( Calculated members) .
Kā definēt jaunu Aprēķināmo rādītāju ?
Ja vēlaties definēt jaunu aprēķināmo rādītāju, tad paplašiniet attiecīgo dimensiju, piemēram, Rādītāji (Measures ) un paplašiniet arī Aprēķināmo rādītāju ( Calculated members ) sadaļu. |
|
|
|
|
|
| |
Ja vēlaties izveidot jaunu aprēķināmo rādītāju, tad klikšķiniet uz Veidot jaunu ( Define New ), ja vēlaties labot vai izdzēst eksistējošu aprēķināmo rādītāju uzklikšķiniet uz Edit . Ja jūsu lietotāja kontam nav piešķirtas tiesības rediģēt aprēķināmos rādītājus, tad jūs redzēsiet tikai iespēju Parādīt ( Show ) un varēsiet apskatīt tikai jau eksistējošu Aprēķināmo rādītāju definīcijas un formulas. Kad Jūs definēsiet jaunu vai labosiet eksistējošu aprēķināmo rādītāju, jūs redzēsiet sekojošu logu : |
|
|
|
|
|
| |
Katram aprēķināmajam rādītājam ir nosaukums ( unikāls dimensijas ietvaros) un aprēķinu formula ( pārējā apmācības daļa mācīs, kā rakstīt aprēķinu formulas ). Turklāt jūs varat norādīt, kā aprēķinātā rādītāja vērtība ir jāformatē ( piemēram, kā skaitlim , decimāldaļai, datumam vai izmantojot noklusējuma formatējamu ) . Labajā sānu joslā, jūs varat ātri izvēlēties citus rādītājus, dimensijas, operācijas vai funkcijas, lai ievietotu tos aprēķina formulā . Pēc tam, kad esat definējis aprēķināmā rādītāja formulu, spiediet Atjaunot ( Update) lai saglabātu to, vai Izdzēst ( Delete), lai izdzēstu konkrēto aprēķināto rādītāju, Atcelt (Cancel), lai atceltu izmaiņas. Ja aprēķināmā rādītāja formula būs sastādīta nepareizi, ekrānā parādīsies kļūdas paziņojums. Ķersimies klāt pie formulu rakstīšanas! Sekojošie formulu piemēri tiks veidoti uz Pārdošana kuba (Sales cube) dimensijām un rādītājiem. |
|
|
|
Dimensijas, hierarhijas, līmeņi un rādītāju nosaukumi
Kad rakstīsiet formulas jums būs jāizmanto dimensijas, dimensiju hierarhijas, hierarhiju līmeņi un citi eksistējošu dimensiju rādītāji. MDX vaicājumu valodā visi nosaukumi tiek likti kvadrātiekavās [ ].
|
|
Vienkāršas aritmētiskas kalkulācijas
Tagad, kad Jūs zināt, kā piekļūt citiem eksistējošiem rādītājiem un citu dimensiju lielumiem mēs varam sākt veidot vienkāršas aritmētiskas kalkulācijas . Ja mums ir ir lielumi Rādītāji.Pārdošana ( Measures.Store Sales ) un Rādītāji. Pārdošanas Izmaksas ( Measures.Store Cost), tad mēs varam definēt jaunu aprēķināmo rādītāju Peļņa ( Profit), kura pilnais nosaukums būs Rādītāji.Peļņa ( Measures.Profit) ar formulu : Measures.Store Sales - Measures.Store Cost. Kad Jūs izmantosiet lielumu Peļņa ( Profit ) veidojot StandardBI atskaites, tad jebkurai kombinācijai ar citām dimensiju vērtībām ši formula kalkulēs starpību starp Pārdošanas ( Store Sales) vērtību un Izmaksas ( Store Cost ) vērtību. Jūs cvarat izmantot jau izveidotos Aprēķināmos rādītājus rakstot formulas jauniem Aprēķināmajiem rādītājiem, taču jāievēro pareiza definēšanas secība. Piemēram, jūs varat definēt tagad Rādītāji. Robeža % ( Measures.Margin % ) ar formulu Rādītāji. Peļņa / Rādītāji.pārdošana ( Measures.Profit / Measures.Store Sales) un StandardBI izrēķinās robežu izteiktu skaitlī un 0 - 1. Ja Jūs vēlaties attēlot rezultātus kā procentus, tad nomainiet rezultāta Formātu (Formating ) Vesels skaitlis ( Integer) vai Decimālprocents ( Decimal percentage ) Jūs varat veikt aritmētiskas kalkulācijas arī citas dimensijas Aprēķinātajiem rāditājiem. Piemēram, jūs varat definēt Klienti.West coast ( Customers.West coast ) aprēķināmo rādītāju Klienti dimensijā ar formulu Klienti.USA.CA + Klienti.USA.OR + Customers.USA.WA (Customers.USA.CA + Customers.USA.OR + Customers.USA.WA) un tagad, ja jūs kombinēsiet atskaitēs Klienti.West coast ( Customers.West coast ) ar Rādītāji.Pārdošana (Measures.Store Sales ), jūs iegūsiet pārdošanas rezultātus visiem trīs šiem štatiem kopā. Ja vienā atskaitē kombinēsiet Rādītāji.Peļņa (Measures.Profit), jūs iegūsiet peļņu viesiem šiem trīs štatiem kopā. |
|
Pārvietošanās dimensiju līmeņos
Kad jūs izmantosiet Rādītāji.Pārdošana (Measures.Store Sales), tad StandardBI aprēkinās Pārdošanas lielumu katrai atbilstošās dimensijas rādītāja rindiņai/ kolonnai atskaitē. Ja jūsu kalkulāciju formulā jūs gribat ignorēt kādas citas dimensijas vērtību, tad jums ir jāizmanto tuples, kas ir dažādu rādītāju kombinācija no dažādam dimensijām. MDX sintakse priekš tuples is (member_1, member_2, ..., member_n). Piemēram, ja jūs velētos iegūt Pārdošanas (Store Sales) vērtību visiem klientiem tad jūs izmantotu tuple Rādītāji.Pārdošana, Klienti.Noklusētais rādītājs (Measures.Store Sales, Customers.DefaultMember ) . |
|
Pārvietošanās laikā
Tā kā jūs tagad protat pārvietoties uz citu dimensiju hierarhijas līmeņiem, tad jūs arī varat pārvietoties uz citas dimensiju rādītājiem tekošajā dimensijā. Parasti to izmanto Laika dimensijā , kad jūs vēlaties salīdzināt rādītājus dažādos laika periodos vai apvienotu laika periodu kopumos.
|
|
Kopas
Tagad jūs zināt, kā pārvietoties uz atsevišķiem rādītājiem kādā no dimensijām, taču bieži vien ir vajadzība veikt darbības ar kādu dimensiju rādītāju kopu (set of dimension members). Piemēram, atrast summu (Sum) vai vidējo rādītāju vērtību (Average) kādas noteiktas dimensijas rādītāju kopas ietvaros. Vienkāršākais veids kā izmantot kopas kalkulāciju formulās ir izmantojot figūriekavas { } ( curly braces), Piemēram: {Customers.USA.CA, Customers.USA.OR, Customers.USA.WA} – Kopa : gan Oregona, gan Vašingtona {Time.2011, Time.2012} – Kopa : gan 2011 gads, gan 2012 gads Ja Jūs vēlēties izveidot paši savu kopu ar secīgiem dimensiju līmeņa rādītājiem, tad jūs varat norādot pirmo un pēdējo rādītāju, jūs varat izmantot kolu ":" starp tiem, tādā veidā norādot kopu " no" - "līdz". Piemēram, šādi var definēt kopu no Jan 01 2012 to līdz Jan 15 2012 : Time.2012.Q1 2012.Jan 2012.Jan 01 2012:Time.2012.Q1 2012.Jan 2012.Jan 15 2012 Diezgan bieži jūs nevēlēsieties norādīt kādus īpašu kopu, bet vēlēsieties atlasīt visus dimensijas hierarhiju līmeņu rādītājus. Jūs varat to izdarīt izmantojot Members metodi, piemēram, lai iegūtu visus laika ( Time) dimensijas mēnešus : Time.Month.Members Kad būs nepieciešams pārbaudīt, tieši kuri rādītāji tiks atgriezti, kā rezultāts kādai jūsu definētais kopai, lai pārbaudītu formulu pareizību tad varat izmantot SetToStr funkciju , lai izveidotu tekstu ar iekļauto rādītāju pilnajiem nosaukumiem. Piemēram, lai definētu aprēķināmo lielumu Measures.test all months ar formulas SetToStr(Time.Month.Members) palīdzību iegūsiet sarakstu ar visiem mēnešiem. Ir vēl vairākas noderīgas funkcijas, kuras varat izmantot strādājot ar kopām, lūk taži piemēri ar tām un to pielietojumu : Customers.USA.CA.Children - atgriezīs vienu līmeni zemākā līmeņa ( .Children ) rādītājus izmantojot dimensiju hierarhiju (šajā gadījumā tās būs visas Kalifornijas pilsētas) Descendants(Customers.USA, Customers.City) - atgriezīs kopu ar eksistējošajiem rādītājiem noteiktajā ( .City) hierarhijas līmenī ( šajā gadījumā visas USA pilsētas ) Customers.USA.CA.San Francisco.Siblings - argriezīs tos "radniecīgos" rādītājus, kuriem ir tāda pati jeb līmeni augstāka rādītāja vērtība, kā norādītajam ( .Sanfrancisco) . Šajā gadījumā funkcija atgriezīs visas pilsētas Kalifornijā. Lieši tāpat arī funkcija Customers.USA.CA.San Francisco.Parent.Children Ir vēl papildus metodes, kuras jūs varat izmantot lai iegūtu tikai pirmās vai pēdējās šo kopu rādītāju vērtības - .FirstChild, .LastChild, .FirstSibling, .LastSibling. |
|
Laika periodu kopas
Ir pieejamas vairākas noderīgas kopu atlases metodes, ko var izmantot Laika periodu kopām ( Time sets) .
|
|
Kopu operācijas
Ir vairākas operācijas,kuras var veikt ar kopām :
|
|
Aprēķini
Tagad, kad jūs mākat atlasīt dažādas dimensiju rādītāju kopas, jūs varat izrēķināt arī dažādas darbības starp tām:
|
|
Nosacījumi
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 Time.CurrentMember.Level.Name – Ja Laika dimensijas tekošā rādītāja līmenī Nosaukums 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 :
|
|
Dimensiju rādītāju īpašības
Dimensiju rādītājiem katram ir vairākas noklusētās īpašības/ iezīmes ( kā piemēram Nosaukums (Name) kā arī tiem varbūt piešķirtas citas nestandarta īpašibas/ iezīmes ) Standard-BI sākuma imports no (piemēram no Basecamp, Highrise vai JIRA) importē arī papildus dimensijas raksturojošos laukus no datu sākotnējās sistēmas. MDX ir standarta funkcija Properties (Iezīmes ) MDX valodā, lai piekļūtu rādītāju iezīmēm, bet Standard-BI piedāvā uzlabotu funkciju getProperty ( kura atgriezīs tukšu rezultātu izņēmuma gadījumā, kad iezīme (Property) neeskistē tekošajam dimensijas līmenim. |
|
Datu tipu konvertācija
Dažreiz Jums var būt nepieciešams konvertēt teksta tipa lauku ( String) uz veselo skaitļu tipa ( Integer), decimāldaļas (Decimal) vai datuma (Date ) tipa lauku (piemēram, lai pārvērstu Highrise nestandarta lauka teksta vērtību uz atbilstoša veida vērtību, lai to varētu izmantot tālākajos aprēkinos). Ir pieejamas vairākas funkcijas, kas veic šādu datu tipi konvertāciju:
|
|
Laika starpības kalkulācijas
Standard-BI definē papildus funkcijas DateDiffDays(from_date, to_date) , kas atgriež vērtību : dienu starpība stap norādītajiem datumiem, kur from_date perioda sākuma datums, bet to_date - perioda beigu datums. To var izmantot koā ar funkciju Now() (kura atgriež patreizējo laiku), lai iegūtu starpību dienās starp norādīto laiku un patreizējo laiku, piemēram DateDiffDays(DateParse(Time.CurrentMember.Name), Now()) Papildus tam Standard-BI piedāvā arī funkciju DateAddDays (date, number_of_days), kura atgriezīs jaunu datumu pagātnē ( ja number_of_days ir negatīvs), vai nākotnē (ja number_of_days ir pozitīvs. Piemēram, šī funkcija atgriezīs datumu, kas ir piecas dienas no patreizējā Laika (Time) dimensijas rādītāja date.DateAddDays(DateParse(Time.CurrentMember.Name), 5) Dažreiz to izmanto, lai iegūtu Laika (Time) dimensijas rādītāju, kurš atbild par faktisko laiku. To var izdarīt ar īpašu Standard-BI dimensiju hierarhiju līmeņa atrībūtu CurrentDateMember. Piemēram, šādi var definēt mēnesi, kas atbilst kunkrētajam datumam un nedēlu , kas atbilst konkrēt ajam datumam : Time.Month.CurrentDateMember vai Time.Weekly.Week.CurrentDateMember Ja neeksistē Laika dimensijas līmenis, kas atbilst patreizējam datumam (piem. ja dati par tekošo nedēļu vai mēnesi vēl nav ieimportēti ) tad CurrentDateMember atgriezīs pēdējo periodu pirms patreizējā datuma, kurš eksistē Laika (Time) dimensijas atbilstošajā līmenī. |
|
Noklusētās vērtības
Var būt gadījumi, kad nepieciešams, lai kalkulācija atgriež kādu noklusēto vērtību, ja kāds rādītājs vai funkcija atgriež tukšumu, jeb rezultāta nav. Šādos gadījumos jūs varat izmantot CoalesceEmpty(expression, default_value) funkciju, kur "expression" ir aprēkināmā vērtība kura var būt tušums, piemēram - CoalesceEmpty(Measures.Store Sales, 0) |
|
Komentāri
Ir iespējams rakstīt komentārus kalkulāciju formulās. Izmantojiet komentārus, lai aprakstītu, paskaidrotu kādas ne uzreiz izprotamas kalkulāciju formulas vai testējot, rakstot jaunas formulas - kad kāda formula nestrādā, kā paredzēts, varat "izkomentēt" dālu no formulas ārā un tad pārbaudīt tās pareizību, bet pēc tam atkal iekļaut formulā, ja nepieciešams. -- vienas rindiņas komentārs |
|
Saraksts ar visām MDX funkcijām
Šī apmācība deva ieskatu visvairāk lietotākajā MDX funkcijās un piemēros, kā tās lietot. Ja jūs neatradāt to, ko meklējāt, tad apskatiet sarakstu ar visām MDX funkcijām. Ja ir vēl kādi neskaidri jautājumi vai problēmas rakstot kalkulāciju formulas tad sazinieties Standard-BI atbalsta komandu. |
|