【发布时间】:2014-07-09 17:12:12
【问题描述】:
以下是我的代码,我得到“1 附近的语法不正确”,1 是 SELECT @cols 语句中的那个。谁能告诉我错误是什么?
ALTER PROCEDURE OnCall_Report
(
@FromDate datetime,
@ToDate datetime,
@SID varchar(10)
)
AS
BEGIN
DECLARE @cols AS NVARCHAR(MAX)
DECLARE @query AS NVARCHAR(MAX)
SELECT @cols = STUFF((SELECT distinct ',' + QUOTENAME(CategoryName)from OnCall_Category FOR XML PATH(''), TYPE
).value('.', 'NVARCHAR(MAX)')
,1,1,'');
SELECT @query='
SELECT
EmployeeSID,
ManagerSID
FROM
(
SELECT EmployeeSID,
ManagerSID,
IsAllowance*10+AllowanceCategory as Category,
Count(RequestID)as RequestCount
FROM
OnCall_Request
WHERE
EmployeeSID='+@SID+' and
RequestDate BETWEEN '+convert(varchar(200),@FromDate)+' AND '+convert(varchar(200),@ToDate)+'
GROUP BY
EmployeeSID,
ManagerSID,
IsAllowance,
AllowanceCategory
)
PIVOT (
Min(RequestCount)
FOR Category IN ('+@cols+')
) AS t2'
Execute(@query)
END
GO
【问题讨论】:
标签: sql-server tsql