我使用SSAS和SQL Server 2008 R2和AdventureWorks数据库。

我写这个查询:

Select
ytd([Date].[Calendar].[Calendar Quarter].[Q3 CY 2003]) on columns
From [Adventure Works]


我得到这个结果:



但是当我执行此查询时:

Select
ytd([Date].[Fiscal].[Fiscal Quarter].[Q3 FY 2003]) on columns
From [Adventure Works]


我收到此错误:

Executing the query ...
Query (2, 2) By default, a year level was expected. No such level was found in the cube.

Execution complete


为什么这个查询不起作用?

最佳答案

来自documentation:Ytd函数是PeriodsToDate [...]的快捷功能。请注意,当Type属性设置为FiscalYears时,此函数将不起作用。如何改用以下代码:

Select

  PeriodsToDate(
    [Date].[Fiscal].[Fiscal Year],
    [Date].[Fiscal].[Fiscal Quarter].[Q3 FY 2003]
  ) on columns

From [Adventure Works]

10-06 14:05