如何使用DAX实现两张表的笛卡尔积关联以生成目标结果?
用DAX生成两张表的笛卡尔积结果
你的需求本质是获取两张表的笛卡尔积(即tblA的每一行与tblB的所有行进行组合),DAX不需要用循环,直接用内置的CROSSJOIN函数就能实现。
表结构回顾
- tblA(仅1列):
Value 1 2 - tblB(多列):
Col1 Col2 Test A Dump B
实现DAX表达式
创建新表的代码如下:
NewTable = CROSSJOIN(tblB, tblA)
结果说明
CROSSJOIN函数会自动将第一个表(tblB)的每一行,与第二个表(tblA)的每一行进行组合,生成的结果完全符合你的要求:
| Col1 | Col2 | Value |
|---|---|---|
| Test | A | 1 |
| Dump | B | 1 |
| Test | A | 2 |
| Dump | B | 2 |
如果需要自定义列顺序,也可以用SELECTCOLUMNS配合CROSSJOIN来指定,不过上面的写法已经匹配你需要的列顺序,无需额外调整。
内容的提问来源于stack exchange,提问作者user3011414
相关产品推荐
相关产品推荐

