![](/img/trans.png)
[英]SSIS - Join tables from different servers whose names are based on a variable
[英]Power BI DAX : CROSS JOIN between two tables based on a variable filter
我的 Power BI model 中有兩個輸入表。
以上兩個表不相關。
用戶權限:
“All”對應於查找表中的所有段,即X、Y、Z。
查找表:
UserPermission[SgmtID] 等價於 LookupTable[SegmentID]。
我需要開發一個 output 表,通過交叉連接 UserPermission 表中的 UserName 列和查找表中的 Ports 列。
所需的 Output 表:
David 需要在查找表中擁有所有段的所有端口(即 X、Y、Z)。
John 只需要擁有段 X的所有端口。
Mike 只需要擁有段 Y的所有端口。
Jill 只需要擁有段 X 和 Z的所有端口。
David 和 Jill 的區別在於,David 可以訪問所有段,而 Jill 可以訪問多個段,但不能訪問所有段。
行級安全 (RLS) 需要 output 表。
我知道使用 VALUES 使用 CROSS JOIN,還有一些變量和過濾器。 但由於缺乏專業知識,無法開發完整的 DAX 查詢。
任何人都可以幫我解決這個問題嗎?
如果您需要在 DAX 中執行此操作,我認為SUMMARIZECOLUMNS function可能是最容易實現此目的的方法。
Output Table =
FILTER (
SUMMARIZECOLUMNS (
UserPermission[UserName],
LookupTable[Ports],
LookupTable[SegmentID],
"SID", VALUES ( UserPermission[SegmentID] )
),
[SID] < 0 || [SID] = [SegmentID]
)
推薦閱讀這款強大的 function:
https://www.sqlbi.com/articles/introducing-summarizecolumns/
編輯:如果您將UserPermissions[SegmentID]
重命名為UserPermissions[SgmtID]
以便在匯總時沒有兩列同名,那么您可以按如下方式編寫組合表並避免您在評論中提到的問題:
Output Table =
FILTER (
SUMMARIZECOLUMNS (
UserPermission[UserName],
UserPermission[SgmtID],
LookupTable[Ports],
LookupTable[SegmentID]
),
[SgmtID] < 0 || [SegmentID] = [SgmtID]
)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.