Power BI仪表板展示两表UNION结果:可使用DAX或M语言实现
双表unit/account维度全量对齐实现方案
你需要的SQL UNION语句本质是先获取两个表所有的unit+account唯一维度组合,再基于这个统一维度关联两边的汇总数据,彻底解决单边新增维度导致的数据展示异常问题,具体操作(以Power BI/Excel Power Query为例)如下:
- 分别对两个原始表做分组汇总
对table1按unit、account两个字段分组,新增汇总列命名为table1_amount,聚合规则为金额求和;对table2执行相同操作,汇总列命名为table2_amount。 - 生成全量唯一维度表
把两个分组后的表仅保留unit、account两列,执行追加查询操作,之后对追加结果删除重复行,得到覆盖两个表所有存在的unit+account的唯一维度基准表。 - 关联两边汇总数据
以全量维度基准表为左表,分别左连接之前分组汇总后的table1和table2,关联条件为unit、account两个字段同时匹配,展开关联得到的两个汇总列即可。 - 差值计算优化(可选)
新增自定义列计算两个数据源的差值,可先把空值替换为0,避免单边存在的维度出现计算错误,公式参考:[table1_amount]??0 - [table2_amount]??0。
之前直接用merge/append达不到效果的原因:merge只能选单边维度为基准,内连接还会丢失单边存在的维度;直接append会把同维度的两个表数据拆成两行,无法直接做同维度差异对比。
内容的提问来源于stack exchange,提问作者Blake Daniel
相关产品推荐
相关产品推荐

