求最后一列(团队业绩) 用存储过程编写 递归

存储过程.png请输入任务描述

925202910 发布于 2019-10-12 17:31
1min目标场景问卷 立即参与
回答问题
悬赏:4 F币 + 添加悬赏
提示:增加悬赏、完善问题、追问等操作,可使您的问题被置顶,并向所有关注者发送通知
共1回答
最佳回答
1
nide870716Lv3见习互助
发布于2019-10-15 13:34
--create stored procedure
create procedure dbo.calc_tdyj as
begin	
	--declare table @res for calculated result
	declare @res table(
	shopname varchar(50),
	yjsj varchar(50),
	xm varchar(50),
	zw varchar(50),
	bm varchar(50),
	ssld varchar(50),
	gryj varchar(50),
	tdyj varchar(50));
	--declare cursor
	declare @per varchar(50);
	declare csr cursor scroll
		for select distinct ssld from employees where ssld is not null;
	open csr;
	fetch next from csr into @per
	while(@@FETCH_STATUS =0)
	begin
		begin
			with cte as(
			select xm,zw,ssld,gryj
			from employees 
			where ssld =@per
			union all
			select b.xm,b.zw,b.ssld,b.gryj 
			from cte a 
			join employees b on a.xm =b.ssld)
			--insert the result of calculated tdyj
			insert into @res(shopname,yjsj,xm,zw,bm,ssld,gryj,tdyj)
			select shopname,yjsj,xm,zw,bm,ssld,gryj,(select sum(gryj) from cte) as tdyj
			from employees 
			where xm =@per;
		end
		fetch next from csr into @per
	end
	close csr;
	deallocate csr;
	--show the result
	select * from @res;
end;

--calling stored procedure
exec calc_tdyj;


fr5.png

  • 2关注人数
  • 484浏览人数
  • 最后回答于:2019-10-15 13:34
    请选择关闭问题的原因
    确定 取消
    返回顶部