SQL的循环查询

多个查询循环,将结果导出到一个结果集。

1.先创建一个临时表(#代表是临时表)

create table #temptable
	(  wuliaohao varchar(50),
	   wuliaoming varchar(100),
	   SQ_no varchar(50),
	   rem varchar(1000)
	);

2.将查询的结果逐条插入到临时表

DECLARE @id VARCHAR(50);  -- 定义变量存储ID值
DECLARE myCursor CURSOR FOR SELECT  prd_no from prdt1 where LST_IND between '2023-01-29' and '2024-02-28' and qty > '0'; -- 创建光标并指定要遍历的表及字段
OPEN myCursor; -- 打开光标
FETCH NEXT FROM myCursor INTO @id; -- 获取第一条记录的ID值到@id变量中
WHILE @@FETCH_STATUS = 0 BEGIN -- 当有数据时执行循环
	insert into #temptable (wuliaohao,wuliaoming,SQ_no,rem)
    SELECT top 1 a.prd_no 物料号,c.name 物料名,b.sq_no 请购单号,b.rem  请购备注
		from tf_sq a 
		LEFT JOIN mf_sq b on a.sq_no=b.sq_no 
		LEFT JOIN prdt c on a.prd_no=c.prd_no
		where a.prd_no =@id 
		order by b.sq_dd desc-- 这里写需要执行的操作
    FETCH NEXT FROM myCursor INTO @id; -- 获取下一条记录的ID值到@id变量中
END;
CLOSE myCursor; -- 关闭光标
DEALLOCATE myCursor; -- 删除光标对象

3.查询临时表

select * from #temptable

4.清除临时表

drop table #temptable

留下你想说的话