Sql 将列值与存储过程的结果进行比较
如果属性Sql 将列值与存储过程的结果进行比较,sql,sql-server-2008,stored-procedures,Sql,Sql Server 2008,Stored Procedures,如果属性boleta.c_Fk_CodPeriodo等于SPdbo.pabltPeriodoBusaRunico3@fecha的返回值,我需要在where中进行比较。SP返回值,如“1011”、“0711”等 SELECT localizacion.c_Fk_IdBoleta FROM Blt_Boleta as boleta, Fnc_Localizacion as localizacion WHERE boleta.c_Pk_IdBoleta = localizaci
boleta.c_Fk_CodPeriodo
等于SPdbo.pabltPeriodoBusaRunico3@fecha
的返回值,我需要在where中进行比较。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中的语法错误。。。所以
如何执行此操作???您需要首先调用存储过程并将结果分配给变量,然后在查询中使用该变量
您不能这样使用存储过程。存储过程返回值为
0711
是什么意思?返回值只能是整数,不能是字符串。您的意思是它返回一个带有字符串的标量结果集吗?该值是通过resultset还是通过RETURN
语句从存储过程返回的?
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