Неверный синтаксис рядом с ')' - PullRequest
0 голосов
/ 03 сентября 2018

У меня есть следующий запрос, который выполняется в хранимой процедуре, но я получаю ошибку, описанную выше.

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)

Помощь будет оценена, спасибо!

1 Ответ

0 голосов
/ 04 сентября 2018

Проверьте переменные @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' предложение

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...