我正在冒险工作中使用以下表来编写查询:
表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。这可能导致这个问题吗?
请指教?提前致谢!
答案 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
祝你好运。