【发布时间】:2016-06-30 03:00:10
【问题描述】:
此过程一直有效,直到我尝试传递参数以限制在数据透视表过程的主选择查询中选择的记录。
如果我注释掉对@Startdate 和@EndDate 的引用,它会起作用,但会选择所有记录。 需要进行哪些更改才能提示日期范围变量并将其合并到查询结果中?
我得到的错误是: 消息 137,第 15 级,状态 2,第 10 行 必须声明标量变量“@StartDate”。
这是下面的过程。
提前致谢。
更改程序 usp_Get_Monthly_IR_Report
@StartDate smalldatetime , @EndDate 小日期时间 作为
DECLARE @ColumnNames NVARCHAR(MAX) = ''
DECLARE @SQL NVARCHAR(Max) = ''
SELECT @ColumnNames += QUOTENAME(GL_Facilities_Name) +',' FROM GL_Facility
SET @ColumnNames = LEFT(@ColumnNames, LEN(@ColumnNames)-1) 设置@sql =
'选择 * 从 ( 选择 IR_Priority_level.IR_Priority_Level_Text 作为 [优先级],IR_Types.IR_Types_Text 作为 [类型],GL_Facilities.GL_Facilities_Name 从 IR_Types 左连接 IR_Priority_Level ON IR_Types.IR_Priority_Level_ID = IR_Priority_Level.IR_Priority_Level_ID 左外连接 IR_Incidents ON IR_Types.IR_Types_ID = IR_Incidents.IR_Types_ID 左加入 GL_Business_Line_Contracts ON IR_Incidents.GL_Business_Line_Contracts_ID = GL_Business_Line_Contracts.GL_Business_Line_Contracts_ID 左加入 GL_Facilities ON GL_Business_Line_Contracts.GL_Facilities_ID = GL_Facilities.GL_Facilities_ID @StartDate 和 @EndDate 之间的 IR_Incidents_Date ) 作为基础数据
枢轴 ( 计数(GL_Facilities_Name) FOR GL_Facilities_Name IN (' +@ColumnNames + ') ) 作为数据透视表'
EXEC sp_executesql @SQL
【问题讨论】:
标签: sql-server parameters pivot