游标问题,我认为我错过的东西我是T Sql的新手

游标问题,我认为我错过的东西我是T Sql的新手

问题描述:

declare @t_Ord_e_id table (order_entry_id numeric(18,0) ,po_no numeric(18,0));
			

	declare cur_ord_ent_id cursor for 
	select distinct  order_entry_id from order_entry_details 
	
	 declare @O_ent_id varchar(50);
	 declare @po_no varchar(60);
	 declare @po_no_concted varchar(100);
	 open cur_ord_ent_id
	 fetch next from cur_ord_ent_id
	 into @O_ent_id
	 while @@FETCH_STATUS=0
		 begin
				 declare cur_po_no cursor for
				 select distinct po_no from order_entry_details where order_entry_id=@O_ent_id
				
				 open cur_po_no
				 fetch next from cur_po_no
				 into @po_no
				 while @@FETCH_STATUS=0
					 begin
						 set @po_no_concted=@po_no_concted+ ','+@po_no
						 print @po_no
						 print @po_no_concted
						 fetch next from cur_po_no
						 into @po_no
					 end
				 close cur_po_no
				 deallocate  cur_po_no
			 insert into @t_Ord_e_id (order_entry_id,po_no)	 
			 values(@O_ent_id,@po_no_concted)
			 
			 fetch next from cur_ord_ent_id
			 into @O_ent_id
		 end 
	 close cur_ord_ent_id
	 deallocate cur_ord_ent_id

但@po_no_concted没有错误,它打印出任何内容。请指导我这个


in inner @po_no is printed but there no error for @po_no_concted nither it prints anything of it. please guide me on this

declare @t_Ord_e_id table (order_entry_id numeric(18,0) ,po_no numeric(18,0));
			
 
	declare cur_ord_ent_id cursor for 
	select distinct  order_entry_id from order_entry_details 
	
	 declare @O_ent_id varchar(50);
	 declare @po_no varchar(60);
	 declare @po_no_concted varchar(100);
set @po_no_concted=''
	 open cur_ord_ent_id
	 fetch next from cur_ord_ent_id
	 into @O_ent_id
	 while @@FETCH_STATUS=0
		 begin
				 declare cur_po_no cursor for
				 select distinct po_no from order_entry_details where order_entry_id=@O_ent_id
				
				 open cur_po_no
				 fetch next from cur_po_no
				 into @po_no
				 while @@FETCH_STATUS=0
					 begin
						 set @po_no_concted=@po_no_concted+ ','+@po_no
						 print @po_no
						 print @po_no_concted
						 fetch next from cur_po_no
						 into @po_no
					 end
				 close cur_po_no
				 deallocate  cur_po_no
			 insert into @t_Ord_e_id (order_entry_id,po_no)	 
			 values(@O_ent_id,@po_no_concted)
			 
			 fetch next from cur_ord_ent_id
			 into @O_ent_id
		 end 
	 close cur_ord_ent_id
	 deallocate cur_ord_ent_id



这对我有用。

这是因为我需要将@po_no_concted初始化为@po_no_concted =''


this worked for me .
it was because i needed to initialize @po_no_concted to @po_no_concted=''


我认为这是关于串联的一些我不会知道。
i think theres something about concateation that i dont know.


我在网上找到@po_no_concted最初应该有一些价值申报后我没有申请
i found on web @po_no_concted should have some value initially and not null
after declaration i t i put this @po_no_concted