添加到存储过程时出现数据透视查询错误,但在查询生成器中运行正常 window

Pivot query error when added to a stored procedure, but runs OK in query builder window

当我 运行 作为常规查询 SQL 时,它 运行 没问题,我得到了正确的结果。现在,我想通过让用户添加一些日期(例如@dtFROM 和@dtTO 日期)来使此查询动态化。这些是我的应用程序中的用户供应日期。现在,我正在尝试在 SQL 服务器中创建一个存储过程到 运行 这个,但这些是关于“)”的错误放置。我已经查看了查询的这个和测试部分,但没有成功。

CREATE PROCEDURE dbo.[usp_Cleaner_KG_per_Date]
@dtFrom datetime,
@dtTo datetime

AS
BEGIN
SET NOCOUNT ON;
DECLARE @query VARCHAR(4000)
DECLARE @Packdate VARCHAR(2000)

SELECT  @Packdate = STUFF(( SELECT DISTINCT
                        '],[' + ((LEFT(CONVERT(VARCHAR, PackDate, 120), 10)))
                        FROM    vw_CleanerSummary2015 where (PackDate >= @dtFROM) and (Packdate <= @dtTO)
                        ORDER BY '],[' + ((LEFT(CONVERT(VARCHAR, PackDate, 120), 10)))
                        FOR XML PATH('')
                        ), 1, 2, '') + ']'

SET @query = 'SELECT * FROM
(
SELECT     ID,KG,PackDate
FROM         vw_CleanerSummary2015
GROUP BY Packdate,ID,[KG/HR]
)t
PIVOT (sum(KG) FOR Packdate
in ('+@Packdate+')) AS pvt'

EXECUTE (@query)

如果这是您所有的程序代码,问题很可能是您在 execute 之后缺少结尾 END 以匹配开头 BEGIN