Ez az oktatóanyag a LuckyTemplates szűrőket tárgyalja. Megtanulja, hogyan tekintheti meg a kontextus átmenetet az xmSQL-ben és a logikai lekérdezési tervben. A kontextus átmenet átalakítja az aktuális sorkörnyezetet egy egyenértékű szűrőkörnyezetté. A szűrőket ezután afunkció.
Tartalomjegyzék
A SZÁMÍTÁS funkció jelentősége
A CALCULATE függvény létrehozza a DAX-számítások kontextusát. Ha egy iterációs függvényt használ anélkül, hogy becsomagolná a CALCULATE -ba , pontatlan eredményeket fog kapni.
Íme egy egyszerű lekérdezés kontextus nélküli átmenettel:

Megvan benne afunkció a FactSales aktuális árának és mennyiségének termékéhez . Ezután minden évhez hozzáad egy oszlopot a Naptári év táblázatban az összes értékesítéshez.
Ha futtatja a lekérdezést, látni fogja, hogy az egyes sorok eredményei megegyeznek.

Az ismétlődő eredmények azt jelentik, hogy valami nem stimmel, mivel gyakorlatilag lehetetlen minden évben ugyanannyi értékesítést elérni. Előfordulhat, hogy a DAX-mérték vagy adatmodell módosításokat vagy módosításokat igényel. Ebben az esetben a DAX-mértékben nincs becsomagolva a CALCULATE .
Ha rákattint az első vizsgálatra, és megnézi az xmSQL utasítást, nem láthat semmilyen szűrőt vagy kontextust, amely azt jelzi, hogy a naptári évnek a számítás részét kell képeznie. Szüksége van a CALCULATE függvényre a kontextus átmenet meghívásához.

Szűrők meghívása a LuckyTemplates DAX lekérdezésben
Ez ugyanaz a lekérdezés, de a CALCULATE függvényt használó kontextus átmenettel .

Ha futtatja a lekérdezést, különböző értékeket láthat az eredményeken.

A DimCalendar év második vizsgálata az összes többi év összegyűjtése. Az eredményekben évekig nem jelennek meg a sorok üres eredményekkel (2012, 2013 és 2014) a vizsgálat nélkül. A tárolómotor ezt a háttérben végzi, hogy biztosítsa az összes adat elszámolását.

Ha megnézi az xmSQL utasítást, láthatja, hogy a bal külső összekapcsolást a CALCULATE függvény hívja meg. A Left Outer Join a 2015 és 2018 közötti évek értékesítési adatait adja meg. Ha az xmSQL utasításban a bal külső összekapcsolást a $Expr0 értékkel kombinálva látja, az azt jelenti, hogy kontextus-átmenet van.

A dolgok kissé bonyolultak lehetnek, ha több kontextusváltás történik. A Left Outer Join azonban tájékoztatja a DAX-ot, hogy a szűrőben lévő adatok tartományára kell összpontosítania.
Ezt valójában a logikai lekérdezési tervben láthatja Sum_Vertipaq formájában , amely a DimCalendar évétől függ.

Ha megpróbálja futtatni a lekérdezést kontextusváltás nélkül, és megnézi a logikai lekérdezési tervet, láthatja, hogy a Sum_Vertipaq nem függ semmitől. Ez azt jelzi, hogy ki kell töltenie valamit az adatmodellben vagy mérésben, hogy megkapja a kívánt kimenetet.

Következtetés
Így azonosíthatja a kontextus-átmenetet, és meghatározhatja, hogy mikor történik meg vagy sem. A kontextus-átmenetek előhívása elengedhetetlen az értékes eredmények előállításához. Segítenek adatokat gyűjteni különböző tartományokból, időszakokból és táblázatokból.
A CLCULATE az egyik legfontosabb funkció a szűrők meghívásakor. A számítás beállítása után a tárolómotor a lekérdezés végrehajtásán dolgozik, hogy eredményeket biztosítson.