You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何基于Fcttbl及关联参考表的指定字段创建新表

实现方法:基于事实表关联多参考表创建新表

根据你描述的表结构(所有参考表仅与Fcttbl关联,彼此无直接关联),以下是主流工具中的实现方案:

一、SQL 环境下实现

通过多次LEFT JOIN将各参考表与事实表关联,直接生成新表:

-- SQL Server 语法示例
SELECT 
    Fcttbl.ID,
    Ref_Product.Product,
    Ref_Country.Country,
    Ref_Category.Category,
    Ref_Subcategory.Color
INTO New_Combined_Table
FROM Fcttbl
-- 替换为实际的关联键,比如Fcttbl.Product_ID = Ref_Product.ID
LEFT JOIN Ref_Product ON Fcttbl.Product_Key = Ref_Product.Product_Key
LEFT JOIN Ref_Country ON Fcttbl.Country_Key = Ref_Country.Country_Key
LEFT JOIN Ref_Category ON Fcttbl.Category_Key = Ref_Category.Category_Key
LEFT JOIN Ref_Subcategory ON Fcttbl.Subcategory_Key = Ref_Subcategory.Subcategory_Key;

补充说明:

  • 若仅需保留所有关联都存在的记录,将LEFT JOIN替换为INNER JOIN
  • 不同数据库创建新表语法有差异:
    • MySQL/Oracle:使用CREATE TABLE New_Combined_Table AS SELECT ...
    • PostgreSQL:支持CREATE TABLE New_Combined_Table AS SELECT ...或SELECT ... INTO New_Combined_Table

二、Power BI(DAX)实现

方案1:利用已建立的模型关系(推荐)

如果已在Power BI模型中为Fcttbl与各参考表建立一对多关系(Fcttbl为多方),可直接用RELATED函数提取字段:

New_Combined_Table = 
SELECTCOLUMNS (
    Fcttbl,
    "ID", Fcttbl[ID],
    "Product", RELATED(Ref_Product[Product]),
    "Country", RELATED(Ref_Country[Country]),
    "Category", RELATED(Ref_Category[Category]),
    "Color", RELATED(Ref_Subcategory[Color])
)

方案2:无模型关系时用LOOKUPVALUE

无需预先建立关系,直接指定关联键匹配:

New_Combined_Table = 
ADDCOLUMNS (
    Fcttbl,
    "Product", LOOKUPVALUE(Ref_Product[Product], Ref_Product[Product_Key], Fcttbl[Product_Key]),
    "Country", LOOKUPVALUE(Ref_Country[Country], Ref_Country[Country_Key], Fcttbl[Country_Key]),
    "Category", LOOKUPVALUE(Ref_Category[Category], Ref_Category[Category_Key], Fcttbl[Category_Key]),
    "Color", LOOKUPVALUE(Ref_Subcategory[Color], Ref_Subcategory[Subcategory_Key], Fcttbl[Subcategory_Key])
)

三、Excel 环境下实现

方案1:函数匹配(快速操作)

在新工作表中复制Fcttbl的ID列,然后用XLOOKUP(或VLOOKUP)匹配各字段:

  • Product列公式:=XLOOKUP([@ID], Ref_Product[关联键], Ref_Product[Product], "")
  • Country列公式:=XLOOKUP([@ID], Ref_Country[关联键], Ref_Country[Country], "")
  • 以此类推完成所有字段匹配后,复制结果并粘贴为值,即可得到新表。

方案2:Power Query(适合大数据量)

  1. 导入所有表到Excel Power Query编辑器
  2. 以Fcttbl为主表,依次选择合并查询,分别关联各参考表(选择对应关联键,保留所有主表记录)
  3. 展开各合并后的列,仅保留需要的字段(Product、Country等)
  4. 关闭并上载数据到Excel,生成新表。

内容的提问来源于stack exchange,提问作者lifeofthenoobie

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 05:15:37