我有一个 sql 存储过程,其中我使用一个游标,其中包含来自 select 语句的一组 id,我使用这些 id 使用游标将值逐个遍历以将值放入其他变量并使用这些变量进行 sql 连接。我的问题是当我执行此操作时,我返回了许多表,而我只需要返回一个表。
SET NOCOUNT ON
declare @BSVal as int
declare @GSVal as int
declare @mID as int
declare @qID as int
DECLARE M_Cursor cursor for
select
ms.MID,ms.QID
from vM As ms join QS as qs
ON ms.QSID=qs.QIDjoin
Mar as mar on mar.MarID=qs.MarID
where (ms.Cid='Web')
open M_Cursor
FETCH NEXT FROM M_Cursor
INTO @mID, @qID
--Get values
WHILE @@FETCH_STATUS = 0
BEGIN
set @BSVal= (select top 1 SCID from vSC where (EnID in
(select EnID from En where EnName='BAIDU')
and QTID=1 and MID=@mIDand QSID=@qID)order by ITime desc);
set @GSVal= (select top 1 SCID from vSC where ( EnID in
(select EnID from En where EnName='GRAPHIC') and QTID=1
and MID=@mIDand QSID=@QSID) order by ITime desc);
select * from
vM m
join vw5TABLE BNDCG on (m.QSid=BNDCG.QID And BNDCG.Position=1)
join vw5TABLE GNDCG on (m.QSid=GNDCG.QID And GNDCG.Position=1)
where
BNDCG.SCid=@BSVal
and GNDCG.SCid=@GSVal
and BNDCG.QSID=@ qID
and GNDCG.QSID=@ qID
and m.MID=@mID
FETCH NEXT FROM M_Cursor
INTO @MID, @QSID
END
CLOSE M_Cursor;
DEALLOCATE M_Cursor;