如何在PowerBI中实现类似SQL的关联子查询完成两表字段匹配
PowerBI 双表字段匹配实现方案

现有两张业务表:JLE_LineTypeCategory(元数据表)、JobLedgerEntry(业务数据表),匹配规则为JLE_LineTypeCategory表的field name值需匹配JobLedgerEntry表的Type与Line Type列,和你提供的SQL逻辑对齐的实现方式有两种:
方案1:Power Query 合并查询(数据加载阶段处理,性能最优)
操作步骤如下:
- 打开Power BI的「Power Query 编辑器」,在左侧表列表选中
JobLedgerEntry表 - 点击顶部菜单栏「添加列」→「自定义列」,输入如下公式(可根据实际字段名调整):
// 完全对齐你提供的SQL逻辑的版本 let CurrentType = [Type], MatchRow = Table.SelectRows(JLE_LineTypeCategory, each [TableName] = "JobLedgerEntry" and [FieldName] = "LineType" and [OptionInteger] = CurrentType) in if Table.IsEmpty(MatchRow) then null else Table.First(MatchRow)[optiontext]
- 确认后即可生成匹配完成的
Type字段,按需调整字段类型后即可加载到数据模型使用。
方案2:DAX 计算列(模型层直接新增,无需修改加载逻辑)
直接在JobLedgerEntry表新增计算列,输入如下DAX公式即可:
Type = VAR CurrentType = JobLedgerEntry[Type] RETURN CALCULATE( FIRSTNONBLANK(JLE_LineTypeCategory[optiontext], 1), JLE_LineTypeCategory[TableName] = "JobLedgerEntry", JLE_LineTypeCategory[FieldName] = "LineType", JLE_LineTypeCategory[OptionInteger] = CurrentType )
如果需要同时匹配Line Type列,只需要在过滤条件中新增对应规则即可。
内容的提问来源于stack exchange,提问作者Trevor Newhook
相关产品推荐
相关产品推荐

