我在存储过程中执行了以下查询,但遇到上述错误。
ALTER PROCEDURE [dbo].[ejemplo]
@periodo VARCHAR(2),
@ejercicio VARCHAR(20),
@sucursales VARCHAR(50),
@departamento VARCHAR(2)
AS
DECLARE @consulta NVARCHAR(MAX);
SET @consulta = 'select balanza.cuenta, Cuentas.Descripcion, sum(total_mensual) as "Gasto Total" from balanza
inner join Cuentas on Cuentas.Cuenta = balanza.cuenta where ejercicio = '+@ejercicio+' and periodo in ('+@periodo+') and sucursal in ('+@sucursales+') and departamento in ('+@departamento+')
group by balanza.cuenta, Cuentas.Descripcion order by balanza.cuenta'
EXEC (@consulta)
将不胜感激,谢谢!
答案 0 :(得分:0)
检查变量@periodo, @sucursales and @departamento
。您似乎正在尝试将其传递为'IN'
语法。打印动态查询时,您会得到
select
balanza.cuenta, Cuentas.Descripcion, sum(total_mensual) as "Gasto Total"
from
balanza
inner join Cuentas on
Cuentas.Cuenta = balanza.cuenta
where ejercicio = @ejercicio
and periodo in (@periodo ) ---Check this variable
and sucursal in (@sucursales) ---Check this variable
and departamento in (@departamento) ---Check this variable
group by
balanza.cuenta,
Cuentas.Descripcion
order by balanza.cuenta
我认为您可能需要更改逻辑才能将其传递给'IN'
子句