某视图如下
  代码   名称   份数  打印份数
  01     张三   90      2
  02     李四   80      3通过select 生成如下
  代码   名称   份数  
  01     张三   90      
  01     张三   90      
  02     李四   80      
  02     李四   80      
  02     李四   80      这样好直接打印出来相应的份数。

解决方案 »

  1.   


    select a.*
    from tb a,master..spt_values b
    where b.[type] = 'p' and b.number between 1 and a.打印份数
      

  2.   


    if object_id('tb') is not null
       drop table tb
    go
    create table tb
    (
     代码 varchar(10),
     名称 varchar(10),
     份数 int,
     打印份数 int
    )
    go
    insert into tb
    select '01','张三',90,2 union all
    select '02','李四',80,3
    go
    select 代码,名称,份数 from tb a cross join master..spt_values b where b.type='p' and number between 1 and 打印份数
    go
    /*
    (2 行受影响)
    代码         名称         份数
    ---------- ---------- -----------
    01         张三         90
    01         张三         90
    02         李四         80
    02         李四         80
    02         李四         80(5 行受影响)
    */
      

  3.   

    to AcHerat:,OK,问题解决,就是这个效果
    to pengxuan:强调的是用select ,不能用临时表,临时表我会
    to liu_yueyang:非面试题,实际的应用,控制打印条形码的个数
      

  4.   

    select a.*
    from tb a,master..spt_values b
    where b.[type] = 'p' and b.number between 1 and a.份数