Adventure Works数据库查询生成空输出

时间:2013-02-02 01:57:50

标签: sql sql-server database

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

enter image description here

表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表中有与FK关联的FK。这可能导致这个问题吗?

请指教?提前致谢!

1 个答案:

答案 0 :(得分:3)

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

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

而是尝试类似:

SELECT dd.DateKey, dd.EnglishMonthName, fis.TotalProductCost
FROM DimDate AS dd INNER JOIN FactInternetSales AS fis 
ON dd.DateKey = fis.OrderDateKey 
祝你好运。