CREATE TABLE BOM单(产品 varchar(10),材料 varchar(10),消耗 decimal(28,6))
declare @i int
declare @J int
set @J = 0
set @i = 0
while @I < 2
begin
   while @j < 26
      begin
          insert bom单 select char(65+@i)+char(65+@j),N'a',1
          insert bom单 select char(65+@i)+char(65+@j),N'b',1
          insert bom单 select char(65+@i)+char(65+@j),N'c',1
          set @j = @J + 1
      end
    set @i = @i + 1
    set @J = 0
end
go
CREATE TABLE 产品生产计划( 产品 varchar(10),产量 decimal(28,6))
declare @ii int
declare @jj int
set @jj = 0
set @ii = 0
while @ii < 2
begin
   while @jj < 26
      begin
          insert 产品生产计划 select char(65+@ii)+char(65+@jj),1
          set @jj = @jj + 1
      end
    set @ii = @ii + 1
    set @jj = 0
end
go
CREATE TABLE 产品生产物料采购计划( 产品 varchar(10),产量 decimal(28,6),材料 varchar(10),消耗 decimal(28,6),计划消耗 decimal(28,6))
DECLARE @p产品 varchar(10)
DECLARE @p产量 decimal(28,6)
DECLARE  cp_Cursor CURSOR FOR
select 产品,产量 from 产品生产物料采购计划OPEN cp_Cursor
FETCH NEXT FROM  cp_Cursor into @p产品,@p产量WHILE @@FETCH_STATUS = 0
BEGIN
        Insert Into 产品生产物料采购计划(产品,产量) select @p产品,@p产量
        FETCH NEXT FROM cp_Cursor into @p产品,@p产量
END
CLOSE cp_Cursor
DEALLOCATE cp_Cursor
select * from 产品生产物料采购计划drop TABLE BOM单
drop TABLE 产品生产计划
drop TABLE 产品生产物料采购计划

解决方案 »

  1.   

    DECLARE  cp_Cursor CURSOR FOR
    select 产品,产量 from 产品生产物料采购计划OPEN cp_Cursor
    FETCH NEXT FROM  cp_Cursor into @p产品,@p产量
    --这里怎么是from 产品生产物料采购计划 ? 本来  产品生产物料采购计划 这个表就没记录的啊
    --还用游标查? 是不是  产品生产计划 这个表啊
      

  2.   

    问题找到了:DECLARE  cp_Cursor CURSOR FOR select 产品,产量 from 产品生产物料采购计划
    应为 DECLARE  cp_Cursor CURSOR FORselect 产品,产量 from 产品生产计划。
    谢谢