В настоящее время у меня есть следующая проблема
Я создал процедуру Strored, которая выполняет динамический SQL в зависимости от параметров, полученных в отчете, разработанном в SSRS.
Это процедура:
alter PROCEDURE TablaDinamica @initdate datetime,
@finaldate datetime, @pin varchar(30), @RID varchar(10),
@PinState varchar(15), @charger varchar(50), @Document varchar(20)
AS
BEGIN
Declare @Where1 nvarchar(max) = ''
Declare @Where2 nvarchar(max) = ''
Declare @Where3 nvarchar(max) = ''
Declare @Select nvarchar(max)
Declare @FROM nvarchar(max)
if(@initdate IS NOT NULL and @finaldate IS NOT NULL)
BEGIN
SET @Where1 = 'a.generationdate between ''' + @initdate + ''' and
'''+ @finaldate + ''''
if(@pin is not null or @pinstate is not null or @NombreRecaudador is not null)
SET @Where1 = @Where1+' and '
END
if(@pin is not null)
BEGIN
SET @Where2= 'pin='''+@pin+''''
if(@pinstate is not null or @charger is not null)
SET @Where2 = @Where2+' and '
END
if(@pinstate IS NOT NULL)
BEGIN
SET @Where3 = 'e.Nombre ='''+ @EstadoPin + ''''
if(@charger is not null)
SET @Where3 = @Where3+' and '
END
SET @Select= 'SELECT a.OpRCId,
a.Id,
f.OpClientId,
f.names,
f.lastnames,
f.Birthdate
SET @FROM = 'FROM
a inner join b ON a.OpId =
b.OpId
INNER JOIN c ON b.AdId = c.AdId
INNER JOIN d ON c.AdId = d.AdId
INNER JOIN e ON a.CId = e.CId
INNER JOIN f ON b.OpId = f.OpId
INNER JOIN g ON a.AdRId = g.AdRId
INNER JOIN s ON c.AdSId = s.AdSId
WHERE f.document = '''+@Document+''''
EXECUTE(@SELECT+@FROM+@Where1+@where2+@Where3)
END
При исключении он отлично работает в SSMS, но в SSRS это ошибка
The multi-part identifier "a.OpRCId" could not be bound.
, и нет никаких других признаков того, что что-то не так
Я ценю любуюпомощь, которую вы можете дать мне!
С уважением!
ПРИМЕЧАНИЕ: Для запроса, это схема
CREATE TABLE [dbo].[a](
[OpId] [int] IDENTITY(1,1) NOT NULL,
[OpCId] [int] NOT NULL,
[CnEId] [int] NOT NULL,
[OpLId] [int] NOT NULL,
[AdId] [int] NOT NULL,
[CnEId] [int] NOT NULL,
[ANI] [numeric](18, 3) NOT NULL,
[generationdate] [datetime] NOT NULL,
[paymentdate] [datetime] NULL,
[Pin] [varchar](30) NOT NULL,
[Recovery] [numeric](18, 3) NOT NULL,
[References] [varchar](50) NOT NULL,
[Company] [numeric](18, 3) NOT NULL,
[Total] [numeric](18, 3) NOT NULL,
[Value] [numeric](18, 3) NOT NULL,