私は、AdventureWorksDW2008R2 db と Adventure Works 2008R2 olap を Adventure Works キューブで使用して、olap の初心者です。
T-SQL を使用して、結果に従って mdx クエリを作成したい: -
select
FactResellerSales.OrderDateKey,
SUM(FactResellerSales.SalesAmount) as 'Reseller Sales Amount'
from FactResellerSales with (nolock)
inner join DimEmployee on DimEmployee.EmployeeKey = FactResellerSales.EmployeeKey
where
FactResellerSales.OrderDateKey=20070901
and DimEmployee.FirstName='Jae' and DimEmployee.LastName='Pak'
group by FactResellerSales.OrderDateKey
結果:
OrderDateKey Reseller Sales Amount
20070901 415046.9295
mdx クエリを使用すると、次のことしか実行できません: -
SELECT [Measures].[Reseller Sales Amount] ON COLUMNS,
NON EMPTY [Date].[Date].members ON ROWS
FROM [Adventure Works]
WHERE [Employee].[Employees].&[291]
結果は、2006 年 7 月 1 日から 2008 年 6 月 1 日までのもので、それぞれの日ごとの再販業者販売額の概要が示されています。
私の質問は、mdx クエリの WHERE 句内で次のことを行う方法です。
a) 2007 年 9 月 1 日の日付でフィルタしますか? 日付ディメンションは受け入れません。
b) 291 の EmployeeKey を使用する代わりに、複数レベルの階層にある「Jae B. Pak」という名前を使用して、Employee でフィルター処理します。