0

我正在使用来自冒险工作的下表来编写查询:

在此处输入图像描述

FactInternetSales 表具有 FK OrderDateKey、DueDateKey 和 ShipDateKey 与 DimDate 表中的 DateKey 关联。

我写了以下查询来测试:

SELECT dd.DateKey, dd.EnglishMonthName, fis.TotalProductCost
FROM DimDate AS dd INNER JOIN FactInternetSales AS fis 
ON dd.DateKey = fis.OrderDateKey AND dd.DateKey = fis.DueDateKey
AND dd.DateKey = fis.ShipDateKey

上面的查询产生空输出。我检查了 FactInternetSales 表中的数据,它具有与 DimDate 表中的 PK 相关联的 FK。这个问题的可能原因是什么?

请指教?提前致谢!

4

1 回答 1

3

虽然如果没有 Adventure Works 数据库(而且我看不到您所附的图片),这非常难以理解,但我的猜测是 FactInternetSales 应该只在单个字段上加入 DimDate。目前,您编写查询的方式是加入 DimDate.DateKey = FactInternetSales.OrderDateKey = FactInternetSales.DueDateKey = FactInternetSales.ShipDateKey

除非 FactInternetSales 中的这 3 个字段相同,否则这永远不会产生结果。

而是尝试类似:

SELECT dd.DateKey, dd.EnglishMonthName, fis.TotalProductCost
FROM DimDate AS dd INNER JOIN FactInternetSales AS fis 
ON dd.DateKey = fis.OrderDateKey 

祝你好运。

于 2013-02-02T02:03:55.740 回答