将列值与存储过程的结果进行比较

时间:2011-11-04 16:25:16

标签: sql sql-server-2008 stored-procedures

如果属性boleta.c_Fk_CodPeriodo等于SP dbo.paBltPeriodoBuscarUnico3 @fecha的返回值,我需要进行比较。 SP返回值如'1011','0711'等。

SELECT 
   localizacion.c_Fk_IdBoleta
FROM 
   Blt_Boleta as boleta, Fnc_Localizacion as localizacion
WHERE 
   boleta.c_Pk_IdBoleta = localizacion.c_Fk_IdBoleta 
   AND localizacion.si_CodAsa = @id_Asa 
   AND  boleta.c_Fk_CodPeriodo = exec  dbo.paBltPeriodoBuscarUnico3 @fecha

exec中的问题是,exec中的语法错误......所以

我该怎么做?

2 个答案:

答案 0 :(得分:1)

您需要先调用存储过程并将结果分配给变量,然后在查询中使用该变量。

你不能使用那样的存储过程。

答案 1 :(得分:1)

DECLARE @output AS varchar(4);
exec @output = dbo.paBltPeriodoBuscarUnico3 @fecha;

 SELECT 
                         localizacion.c_Fk_IdBoleta
                    FROM 
                         Blt_Boleta as boleta, Fnc_Localizacion as localizacion
                    WHERE 
                         boleta.c_Pk_IdBoleta = localizacion.c_Fk_IdBoleta 
                         AND localizacion.si_CodAsa = @id_Asa 
                         AND  boleta.c_Fk_CodPeriodo = @output