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 を 1 つのフィールドでのみ JOIN する必要があると思います。現在、クエリを作成した方法では、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 に答える