我有一个有 2 个日期Invoice Date
和Accounting Current Date
. 为了获得请求的收入值,我需要使用这两个日期的组合。例如,如果我需要 YTD 收入,我需要像这样选择它:
(注:我写的是SQL查询,因为我比较熟悉)
SELECT Revenue
FROM
Fact_Revenue
WHERE
Invoice_Date <= '2011-10-22'
and AccountingCurrent >= '2011-01'
and AccountingCurrent <= '2011-10'
除了收入之外,这个事实表还有我还需要的其他信息,但是为了计算我不需要的其他数据Accounting Current Date
。Invoice Date
所以我的想法是在主 MDX 查询中只使用 1 个日期(Accounting Current Date
与选定Invoice Date
的 .
例如
SELECT {[Measure].[RevenueYTD],
[Measure].[RevenueMTD],
[Measure].[NumberOfInvoices],
[Measure].[NumberOfPolicies]}
ON COLUMNS,
{[People].Members} ON ROWS
FROM [Cube]
WHERE
[Invoice Date].[Date Hierarchy].[Date].&[2011-10-22]
在这种情况下,[Measure].[RevenueYTD]
and[Measure].[RevenueMTD]
需要限制,Accounting Current Date
并且Invoice Date
必须低于查询的日期。另一方面,我需要特定发票日期([Measure].[NumberOfInvoices]
或[Measure].[NumberOfPolicies]
MTD 日期等),但不涉及Accounting Current Date
计算成员查询应该做这样的事情(这更像是算法):
ROUND(
SUM(
YTD([Accounting Current Date].[Date Hierarchy].CurrentMember),
[Measures].[Revenue]
),
2)
WHERE [Invoice Current Date].[Date Hierarchy] < [Invoice Current Date].[Date Hierarchy].CurrentMember