改为储存过程,执行命令没有错误
ALTER PROCEDURE [dbo].[usp_yw200]
(@whereflt NVARCHAR(MAX),@groupcol NVARCHAR(100))
AS
BEGIN
DECLARE @sql NVARCHAR(MAX);
SET @sql = 'SE LECT 客户 ,' +@groupcol+ ', sum(数量) as 数量 from 订单明细 a inner join 订单 b on a.订单编号 = b.订单编号'
+@whereflt+ 'group by 客户,' +@groupcol;
EXEC sp_executesql @sql;
END;
但输入值测试总出错:
DECLARE
@return_value int
EXEC
@return_value = [dbo].[usp_yw200]
@whereflt = N'订单类别= ''客户订单''',@groupcol = N'制单日期'
SELECT
'Return Value' = @return_value
GO
执行结果是 '订单类别' 附近有语法错误。1行受影响是返回了0 ,但没有返回实际的数据,变量值两端都是用两个单引号,写法也没错,问题出在哪里?