SSRS 报告日期参数错误以查询 SSAS 表格模型 - '5' 的语法不正确

SSRS Report Date Parameter Error to Query SSAS Tabular Model - The syntax for '5' is incorrect

Visual Studio(2015 企业)中可见的错误的实际文本是这样的。

An error occurred during local report processing.
An error has occurred during report processing.
Query execution failed for dataset 'ProductivityDS'.
The syntax for '5' is incorrect. (3/2/2017 5:00:00 AM)

它正在查询我创建和部署的简单表格模型。该模型有四个 table。员工 table、工作卡 table(包含工作编号、小时数等)、日期维度 table 和工资时钟 table。目标是报告 "direct" 部门根据订单计费的小时数与实际出勤时间。

表格是 [员工]、[劳动日期](日期暗淡)、[ADI 时间详细信息](工资单)和 [路线转运](工作卡)。度量是 [ADI 时间详细信息]。[直接小时数] 和 [路线传输]。[已赚小时数总和]。

我通常不使用查询设计器,因为我非常擅长 SQL,但这是我第一次使用 SSAS,所以我在这里使用它。

我输入了[劳动日期].[日期]、[员工].[员工 ID]、[员工].[员工姓名]、[措施]、[工时总和]和[措施] .[直接营业时间]。我还在顶部添加了维度。这是 {"Dimension":"Labor Date", "Hierarchy":"Date", "Operator":"Equal", "Filter Expression":"{ 6/26 /2013 }", "Parameters":"Checked"}.

在查询设计器中执行查询,它会按预期生成数据集。

切换到设计模式,查询文本是这样的

SELECT NON EMPTY { [Measures].[SUM OF Earned Hours], 
       [Measures].[Direct Hours] } 
ON COLUMNS, 
       NON EMPTY { ([Labor DATE].[DATE].[DATE].allmembers * [Employee].[Employee ID].[Employee ID].allmembers * [Employee].[Employee Name].[Employee Name].allmembers ) } DIMENSION PROPERTIES member_caption, 
       member_unique_name 
ON ROWS 
FROM   ( 
              SELECT ( STRTOSET(@labordatedate, constrained) ) 
              ON COLUMNS 
              FROM   [Model]) CELL PROPERTIES VALUE, 
       back_color, 
       fore_color, 
       formatted_value, 
       format_string, 
       font_name, 
       font_size, 
       font_flags

单击“确定”接受查询,然后返回“数据集”属性我单击“参数”将名为 LaborDateDate(内部查询)的参数与 [@PerDate](报告参数)联系起来。

报告参数 [@PerDate] 使用此表达式作为其默认值:

=DateAdd(DateInterval.Day, -1, Today.Date)

查询在查询生成器中有效,但在报表执行中失败。日期维度和参数中的日期都是零时日期时间,所以我很困惑 5 AM 是从哪里来的。

我做错了什么?

下面回答后的解决方案

我按原样保留了 [@PerDate]。我创建了第二个参数,标记为隐藏,名为 [@PerDateStr],数据类型为文本。我将其中的可用表达式和默认表达式设置为 ...

="[Labor Date].[Date].&[" & Format(Parameters!PerDate.Value, "yyyy-MM-dd") & "T00:00:00]"

然后在数据集中,我将内部查询参数 LaborDateDate 映射到报告参数 [@PerDateStr]。成功!

改用 Labor Date 维度中的有效成员:

="[Labor Date].[Date].&[" & DateAdd(DateInterval.Day, -1, Today.Date) & "]"

确保根据维度值设置日期值的格式。