能否在数据仓库/表格模型中基于不同字段建立多对多关联实现买卖双方合同统计报表
Tabular模型多角色客户关联统计实现咨询
项目背景
我正在为某经纪公司搭建数据仓库、设计SSAS Tabular表格模型,匹配核心业务规则:经纪方创建合同时,单份合同会同时关联买方与卖方两类客户主体,后续业务迭代还会扩展合同关联第三方参与主体的场景。
当前已设计的表结构
合同事实表 Fact_Contracts
CREATE TABLE [dbo].[Fact_Contracts]( [FactContractId] [INT] IDENTITY(1,1) NOT NULL, [ContractBuyer_Client_Key] [INT] NOT NULL, [ContractSeller_Client_Key] [INT] NOT NULL, [ContractDate_Key] [INT] NOT NULL, [ContractAmount] [DECIMAL](18, 2) NOT NULL, )
客户维度表 Dim_Clients
CREATE TABLE [dbo].[Dim_Clients]( [ClientKey] [int] IDENTITY(1,1) NOT NULL, [ClientBK] [int] NOT NULL, [ClientName] [nvarchar](20) NOT NULL, )
预期报表效果
以单笔实际合同为例:存在1笔ID为10的合同,关联买方客户键值为1(客户名称Abraham)、卖方客户键值为2(客户名称Björk),合同金额为1000。要求基于客户维度制作合同金额统计报表,输出效果如下:
FactContractId Client_Key ClientName ContractAmount 10 1 Abraham 1000 10 2 Björk 1000 -------------------------------------------------------- Total 1000 --------------------------------------------------------
核心疑问
是否可以在数仓/Tabular表格模型中,基于事实表内的两个不同客户关联字段,建立适配客户维度的多对多关联关系,实现这类同时关联事实表中两个不同客户字段的双向关联统计报表,满足按客户维度聚合查看合同金额的需求?
关键业务约束
- 直接将报表总金额除以2的方案完全不可行:实际业务场景下合同还会关联第三方主体(上述展示的表结构为简化演示版本,未体现对应第三方字段),要求报表统计的总金额为所有独立合同的真实求和值,绝对不能出现跨关联字段的重复计算问题。
内容的提问来源于stack exchange,提问作者olf
相关产品推荐
相关产品推荐

