Ahoj som vytváranie rolí v napájaní BI a filtrovanie tabuľky podľa princípu -
napríklad role1 - môže vidieť iba údaje o CKBD, CKRANP, DA princípe, že používam funkciu dax -
OR([principlecode] = "CKB" || [principlecode] = "CKBD"|| [principlecode] = "DA")
ale jeho slovo alebo podmienka môže mať iba 2 argumenty, existuje nejaký spôsob, ako to urobiť?
Vďaka
odpovede:
0 pre odpoveď č. 1ok práve potrebné odstrániť alebo
([principlecode] = "CKB" || [principlecode] = "CKBD"|| [principlecode] = "DA")
0 pre odpoveď č. 2
Pre prehľadnosť ponúka DAX dve možnosti pre logické OR (ako aj logické AND):
- Funkcia OR (ako aj funkcia AND)
- Binárne || operátor (ako aj binárny operátor &&)
Funkcia OR prijíma presne dva argumenty na vykonanie logického OR:
OR([principlecode]="CKB", [principlecode]="CKBD"])
Ak to chcete urobiť s príkladom, musíte vnoriť príkazy OR, pretože DAX neposkytuje funkciu s viac ako 2 parametrami:
OR(OR([principlecode]="CKB", [principlecode]="CKBD"]),[principlecode] = "DA")
Docela škaredá, IMO. Operátor AND má rovnakú výzvu:
AND(AND(first_boolean, second_boolean), third_boolean)
Na druhej strane binárny operátor || vykonáva logické OR naprieč operandami a umožňuje, aby bolo vyhlásenie pripútané (ako zdôrazňujete vo svojej vlastnej odpovedi):
[principlecode] = "CKB" || [principlecode] = "CKBD"|| [principlecode] = "DA"
Podobne pre logické AND:
first_boolean && second_boolean && third_boolean
Nemyslím si, že existujú rozdiely v nákladoch na výkonnosť medzi týmito dvoma metódami.