【发布时间】:2014-10-06 18:11:36
【问题描述】:
我有以下不知道如何处理的情况: 有一个表 Inovice_Item、Service 和 ServiceLang。 Invoice_item 表有 FK_Service 键(一对一)。服务表有 FK_Service_Lang 键。 ServiceLang 表具有 FK_Service 键,因此它使其成为多对多关系。
换句话说,Invoice_Item 可以有多个 ServiceLang 记录,这意味着当我进行连接查询时,invoice_item 记录会重复。处理这种情况有哪些选择?
我想在多维数据集中有 ServiceLang 维度,但我不确定如何处理由 join 引起的重复。
编辑
我做了一个例子:
查询如下:
-- One lang for service A, two langs for service B
select * from ServiceLang
-- Two records: A and B
select * from Service
-- Total amount is 20
select * from InvoiceItem
-- Query to populate Fact table
-- Total amount is 30
select *
from InvoiceItem II
inner join Service S on II.FK_Service = S.PK_Service
inner join ServiceLang SL on S.PK_Service = SL.FK_Service
所以,如果有两个 Service_Lang 记录与一项服务相关,那么有一个重复的行意味着总服务量将是 30 但应该是 20。那么,我的问题是如何处理这些情况?
【问题讨论】:
标签: sql join ssis duplicates data-warehouse