 复制USE MdxStepByStep SELECT m.EnglishProductName,数示例 o.TotalSalesAmount FROM dbo.DimProduct m INNER JOIN ( -- TOP 10 PRODUCTS OF 2003 SELECT TOP 10 a.ProductKey, SUM(a.SalesAmount) AS TotalSalesAmount FROM ( SELECT x.productkey, x.salesamount FROM dbo.FactInternetSales x INNER JOIN dbo.DimDate y ON x.OrderDateKey=y.DateKey WHERE y.CalendarYear=2003 UNION ALL SELECT x.productkey, x.salesamount FROM dbo.FactResellerSales x INNER JOIN dbo.DimDate y ON x.OrderDateKey=y.DateKey WHERE y.CalendarYear=2003 ) a GROUP BY a.ProductKey ORDER BY TotalSalesAmount DESC ) n ON m.ProductKey=n.ProductKey LEFT OUTER JOIN ( --PRODUCT SALES IN 2004 SELECT a.ProductKey, SUM(a.SalesAmount) AS TotalSalesAmount FROM ( SELECT x.productkey, x.salesamount FROM dbo.FactInternetSales x INNER JOIN dbo.DimDate y ON x.OrderDateKey=y.DateKey WHERE y.CalendarYear=2004 UNION ALL SELECT x.productkey, x.salesamount FROM dbo.FactResellerSales x INNER JOIN dbo.DimDate y ON x.OrderDateKey=y.DateKey WHERE y.CalendarYear=2004 ) a GROUP BY a.ProductKey ) o ON m.ProductKey=o.productkey ORDER BY n.TotalSalesAmount DESC /* EnglishProductName TotalSalesAmount Mountain-200 Black, 38 1327957.4077 Mountain-200 Black, 42 1139429.4872 Mountain-200 Silver, 38 1136622.4928 Mountain-200 Black, 46 1011074.3685 Mountain-200 Black, 38 NULL Mountain-200 Silver, 42 1011486.1762 Touring-1000 Blue, 60 835290.1559 Road-350-W Yellow, 48 897217.9635 Mountain-200 Silver, 46 1029170.7639 Road-350-W Yellow, 40 840970.6467 */ 1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.21.22.23.24.25.26.27.28.29.30.31.32.33.34.35.36.37.38.39.40.41.42.43.44.45.46.47.48.49.50.51.52.53.54.55.56.57.58.59.60.61. |