我有一个事实和维度表的数据仓库问题

I have a datawarehouse problem with the fact and dimension table

提问人:UNIQP 提问时间:7/26/2023 最后编辑:Nick.McUNIQP 更新时间:7/27/2023 访问量:55

问:

我有一个维度表、发票和一个事实表

我可以在维度发票中看到我的发票,但它不会显示在事实数据表中。事实数据表使用外键invoice_id连接到维度表 invoice。但它仍然没有向我显示发票

如何解决此问题?有人可以帮忙吗?

谢谢

SELECT [Id] ,[Land] ,[Firm] ,[Magazijn] ,[year] ,[Invoice number] ,[Checksum] ,[LastModifiedDate] 
FROM [DataWarehouse].[dbo].[Dim_Invoices] 
where Invoice number = 6451847 

这里没有获得此号码的发票

SELECT [Id] ,[Invoice_id],[Land] ,[Firm] ,[Magazijn] ,[year] ,[Invoice number] ,[Invoice_Date] ,[LastModifiedDate] 
FROM [DataWarehouse].[dbo].[FACT] 
where Invoice number = 6451847 

这里显示发票编号(注意Invoice_ID是 FK)

sql-server 数据仓库 维度 事实

评论

1赞 Nick.Mc 7/26/2023
它在哪里“不显示”?请发布您正在使用的 SQL 查询或描述您是如何执行的。我建议您获取失败记录样本并检查连接列中的值。造成这种情况的一个原因可能是事实数据表中的值为 NULL(外键允许这样做)
0赞 UNIQP 7/27/2023
SELECT [Id] ,[土地] ,[公司] ,[Magazijn] ,[年份] ,[发票编号] ,[校验和] ,[LastModifiedDate] FROM [DataWarehouse]。[dbo]。[Dim_Invoices] 其中发票编号 = 6451847 此处没有获取此编号的发票 SELECT [Id] ,[Invoice_id] ==> (FK) ,[土地] ,[公司] ,[Magazijn] ,[年份] ,[发票编号] ,[Invoice_Date] ,[LastModifiedDate] FROM [DataWarehouse]。[dbo]。[FACT] 其中发票编号 = 6451847 此处显示发票编号
1赞 Nick.Mc 7/27/2023
我已经编辑了您的问题并添加了此代码。你好像在问,如果这是一个外键,这怎么可能?首先要做的是检查 FK 是否已打开 stackoverflow.com/questions/1253623/...

答:

0赞 Joe 7/27/2023 #1

您需要尝试以下操作:

我不确定为什么您在事实表中有字段,因为它们在维度中是重复的。你们的措施是什么?

SELECT ft.[Id] 
, ft.[Invoice_id]
, ft.[Land] 
, ft.[Firm] 
, ft.[Magazijn]
, ft.[year] 
, ft.[Invoice number] 
, ft.[Invoice_Date]
, ft.[LastModifiedDate]
, iv.[Id] 
, iv.[Land] 
, iv.[Firm]
, iv.[Magazijn]
, iv.[year] 
, iv.[Invoice number] 
, iv.[Checksum] 
, iv.[LastModifiedDate] 
FROM [DataWarehouse].[dbo].[FACT] ft
JOIN [DataWarehouse].[dbo].[Dim_Invoices] iv ON iv.id = ft.Invoice_id
where iv.[Invoice number] = 6451847